我正在尝试找出如何将克隆选项传递给nodegit clone方法。

Node git文档指出,clone方法的第三个参数是clone options对象。
http://www.nodegit.org/nodegit/#Repo-clone

git.Repo.clone(URL, path, CloneOptions, callback);

但是,此对象未包含在nodegit的标准内部版本中。

我已经将clone_options.cc文件的绑定(bind)添加到bindings.gyp文件中,并且可以访问克隆选项对象。但是,我不知道如何使用有效的分支名称实例化它。
libgit2 api显示该选项为checkout_branch
http://libgit2.github.com/libgit2/#HEAD/type/git_clone_options

有人对如何执行此操作有任何见解吗?还是在支持在 Node 中克隆git分支的替代库上?
var CloneOptions = nodegit.CloneOptions;
var options = new CloneOptions({checkout_branch: branchName});
git.Repo.clone(url, temp, options, function (err, repo) {...});

结果是
Error: git_clone_options is required.

github问题页面上还有一个针对nodegit的开放线程

https://github.com/nodegit/nodegit/issues/127

最佳答案

你可以试试这个...

    var Git = require('nodegit');
    var clone = Git.Clone.clone;
    var branch = 'development';
    var cloneOptions = new Git.CloneOptions();

    cloneOptions.checkoutBranch = branch;
    clone(url, directory, cloneOptions)
        .then(function(repository){
            console.log(repository);
        });

10-04 12:44