2014-02-26 62 views
6

我正在努力解决如何将克隆选项传递给nodegit克隆方法。使用NodeGit CloneOptions克隆分支

节点GIT中文档指出是第三个参数到克隆方法是克隆选项对象 http://www.nodegit.org/nodegit/#Repo-clone

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

但是该对象不包含在nodegit的标准构建。

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

任何人有任何有关如何做到这一点的见解?或者在一个支持在节点中克隆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

+0

你可以也可以尝试更改你的代码的属性:'checkout_branch'到'checkoutBranch' –

回答

5

你可以试试这个...

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); 
     });