javascript nodegit无法找到远程

时间:2015-04-01 14:21:31

标签: javascript node.js nodegit

伙计们,我有一个名为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?我已将远程克隆到本地目录,并尝试切换到特定分支。

谢谢!

1 个答案:

答案 0 :(得分:3)

这是来自nodegit issue

的copypasta

所以你只能结账一个本地分行。您正在尝试检出遥控器。您必须执行的操作是get the commit on the remote branch,然后使用create a new branch然后(可选)set the upstream来跟踪原始远程分支。

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