【问题标题】:Equivalent of branch.<name>.merge for git-push等价于 git-push 的 branch.<name>.merge
【发布时间】:2015-06-22 05:52:43
【问题描述】:

根据git-configdocumentationbranch.&lt;name&gt;.merge

branch.&lt;name&gt;.merge

branch.&lt;name&gt;.remote 一起定义 给定分支的上游分支。它告诉 git fetch/git pull/git rebase 要合并的分支,也可以影响 git push(参见 push.default)。

对于给定的分支,是否有一个等效的设置来指定要推送到的上游分支?这是我想要实现的行为 - 假设我有一个分支 Aremote 设置为 origin。从分支A 运行git push 时,结果应该等同于运行git push refs/heads/A:refs/for/master

或者,是否有 remote.*.push 的值可以实现这种行为?将 remote.origin.push 设置为 refs/heads/*:refs/for/master 会导致无效的 refspec。

【问题讨论】:

  • “说我有一个远程设置为原点的分支 A”我不熟悉分支拥有远程仓库的任何能力。我从中解释说,您的存储库为上游存储库上的一个名为“origin”的分支定义了一个远程。另一方面,我认为您的意思是您已经克隆了一个上游仓库,并且您在本地定义的唯一远程称为“origin”并指向上游主服务器。
  • @ThatsAMorais 我不知道为什么这个说法是模棱两可的。但也许这会更好地表达它。我定义了一个名为 originremote。我的本地存储库有一个名为A 的分支。此外,git config branch.A.remote 输出 origin
  • 啊,谢谢!这更清楚了。

标签: git git-push git-config


【解决方案1】:

我认为这篇文章可能会有所帮助:git alias for HEAD:refs/for/master

【讨论】:

  • 不,这不是我要问的。顺便说一句,如果您从我的问题“也可以影响 git push(请参阅 push.default)”中挖掘文档引用,那么您链接到的答案就是您会发现的。当push.default 设置为upstream 时,branch.&lt;name&gt;.mergegit-push 使用的远程分支,没有指定refspec。
  • 好的,也许需要进一步说明。我没有很好地重申你的问题,但我相信你试图避免每次都必须指定要掌握的参考(例如 refs/heads/A:refs/for/master) 我发布的解决方案应该永久设置上游分支名称.
  • 是的,但问题是我要推送到的 refspec 是 refs/for/master,而基于上游分支设置为 master 的 refspec 是 refs/heads/master。没有与此 refspec AFAIK 对应的分支名称。顺便说一句,您可能已经认识到,refs/for/master 因为涉及 gerrit。
  • 谢谢,但这也不起作用 - 这是我的第一次尝试,但分支 A 中的 remote.origin.pushgit push 的引用规范最终等同于 git push origin refs/heads/A:refs/for/A。这就是 refs/heads/*:refs/for/*remote.*.push 值被解释的方式。
猜你喜欢
  • 2018-10-18
  • 2015-11-14
  • 2018-10-07
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 2018-08-31
  • 2018-11-01
  • 2018-07-05
相关资源
最近更新 更多