首页 > 解决方案 > 用于推送的 refSpecs 如何工作?

问题描述

我正在编写基于此示例的代码,但想使用已为分支设置的正确上游。

const branch = await repo.getCurrentBranch();
const branchRefspec = branch.name();
const remoteRefspec = await Git.Branch.upstream(branch);
const remote = await repo.getRemote('origin');
await remote.push(
    [`${branchRefspec}:${remoteRefspec}`],
    {
        callbacks: {
            credentials: verifyUser,
        },
    },
);

出于某种原因,这段代码什么都不做。我找不到任何关于这个参数到底是什么以及分号后面是什么的文档。不管它是什么,它看起来都不像旧 git 的 refspecs

如果 refspec 保持其在示例中的方式(即来自和进入同一分支),它会以某种方式工作。

为什么这段代码不起作用?我应该在那里传递什么参考规范,为什么?

标签: node.jsnodegit

解决方案


我与 libgit2 人员核实过,您的 refspecs 在推送时必须是扩展形式refs/heads/master:refs/heads/master。您不能简单地使用master:master.


推荐阅读