我喜欢简单地使用git push
将当前分支推送到配置的上游。为此,我设置了git config push.default upstream
这确实是正确的。将当前分支推送到Gerrit
现在我试着为Gerrit设置一个合适的遥控器,它会自动推送到refs/for/*
。
当时的想法是做这种方式:
[remote "gerrit"]
url = ssh://host:port/repo
push = refs/heads/*:refs/for/*
我想键入git push gerrit
,并期望混帐只能作用于当前分支推到正确的裁判。
不幸的是,现在git试图推动所有地方分支Gerrit。 - 有没有什么办法可以让git只推送当前分支,就像上面的push.default
一样?
更新:
- 推送操作只能使用一个单一的Refspec。
- 如果在命令行上给出了明确的refspec,则使用这一个。
- 如果没有在命令行中给出,则使用使用远程定义的那个。
- 如果远程也没有给出,只有push.default被考虑。
对于Gerrit,我需要一个像'branch:refs/for/branch'这样的分支作为当前分支的refspec。
问:
- 是否有一个明确的Refspec相当于=上游是做什么push.default?
- 有没有办法将git配置成自动推送到正确的refs/for ref?
目前我发现的最好方法是将所有内容都包装在一个单独的脚本中,如建议的here。但我仍然不相信只有一个合适的参考是不可能的。
好的。只需在这里查看不同的选项。我了解到'push.default'只有在没有给出refspec的情况下才会考虑。如果你通过命令行提供一个refspec(比如'HEAD'),这将覆盖远程给定的refspec。因此它只会推到'ref/heads',这不是你想要的。有趣。 – VonC