Sid*_*wal 6 javascript git clone github node.js
我需要一种可靠的方法来克隆 github 存储库并使用 node.js 和任何必要的 npm 包将其粘贴到本地目录中。
此代码使用 nodegit 库,无法克隆 github 存储库。它创建了一个名为 .git 的文件夹,并且不从 repo 复制任何文件。我尝试了几个库,其中大多数库都具有极其复杂的代码或不起作用。这以前有效,但现在不行。(它随心所欲地打开和关闭)。请帮助,我需要一个可靠的代码来从 url 克隆一个 github 存储库并将其粘贴到本地目录中。谢谢你。
var nodegit = require('nodegit'),
path = require('path');
var url = "https://github.com/atomicptr/dauntless-builder", //also tried https://github.com/atomicptr/dauntless-builder.git
local = "C:/data",
cloneOpts = {};
nodegit.Clone(url, local, cloneOpts).then(function (repo) {
console.log("cloning succesful!");
console.log("Cloned " + path.basename(url) + " to " + repo.workdir());
}).catch(function (err) {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
此代码未显示任何错误,但实际上无法克隆存储库。
Jas*_*les 10
您可以为此使用shelljs。
const shell = require('shelljs')
const path = 'absolute/path/to/folder'
shell.cd(path)
shell.exec('git clone https://github.com/atomicptr/dauntless-builder')
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试git-clone npm 包
npm i git-clone
Run Code Online (Sandbox Code Playgroud)
var clone = require('git-clone');
clone(repo, targetPath, [options], cb);
Run Code Online (Sandbox Code Playgroud)
支持的选项:
git:git 二进制文件的路径;默认值:git(可选)。
浅:当为 true 时,克隆深度为 1(可选)。
签出:要签出的修订/分支/标签(可选)。
假设您在机器上安装了 git,您可以简单地从 node 运行 clone 命令。
const path = require('path');
const{ execSync } = require('child_process');
execSync('git clone repolink', {
stdio: [0, 1, 2], // we need this so node will print the command output
cwd: path.resolve(__dirname, ''), // path to where you want to save the file
})
Run Code Online (Sandbox Code Playgroud)