5

伙计们,我有一个名为user/foo我想从远程签出的分支。代码:

Git.prototype.refresh = function refresh(branch) {

    var options = {
        credentials: function() {
            return NodeGit.Cred.userpassPlaintextNew(GITHUB_TOKEN, "x-oauth-basic");
        },
        certificateCheck: function() {
            return 1;
        }
    };

    return NodeGit.Repository.open(localPath).then(function (repo) {

        return repo.checkoutBranch(branch, options).then(function (checkoutresult) {

            return repo.fetchAll(options).then(function (result) {
                return Promise.resolve(result);
            }).catch(function (err) {
                console.log('Unable to fetch',err);
                return Promise.reject(new Error(err));
            });
        }).catch(function(err) {
            console.log('checkoutBranch',err);
            return Promise.reject(new Error(err));
        });
    });
};

错误:

[Error: Error: Reference 'refs/remotes/user/foo/HEAD' not found]

我是否错误地使用了 checkoutBranch?我已经将远程克隆到本地目录,并正在尝试切换到特定分支。

谢谢!

4

1 回答 1

3

这是来自nodegit 问题的 copypasta

因此,您只能结帐本地分支。您正在尝试检查遥控器。您需要做的是获取远程分支上的提交,然后使用它创建一个新分支,然后(可选)设置上游以跟踪原始远程分支。

此时,您可以查看新创建的本地分支。

于 2015-04-01T17:23:53.827 回答