将当前分支推送到Gerrit

mic*_*has 8 git gerrit

我喜欢简单地使用git push(仅)将当前分支推送到配置的上游.为此,我设置git config push.default upstream哪个做正确的事情.

现在我尝试为Gerrit设置一个合适的遥控器,它会自动推送到refs/for/*.

这个想法是这样做的:

[remote "gerrit"]
        url = ssh://host:port/repo
        push = refs/heads/*:refs/for/*
Run Code Online (Sandbox Code Playgroud)

我想键入git push gerrit并期望git只将当前分支推送到正确的ref.

不幸的是现在git试图将所有本地分支推送到Gerrit.- 有没有办法告诉git只推送当前分支,push.default如上所述?

更新:

  • Git push只能使用一个refspec.
  • 如果在命令行上给出了明确的refspec,则使用此refspec.
  • 如果命令行中没有给出,则使用使用远程定义的那个.
  • 如果没有给出遥控器,则只考虑push.default.

对于Gerrit,我需要一个refspec,比如'branch:refs/for/branch',branch是当前的分支.

题:

  • 是否有一个明确的refspec等同于push.default = upstream正在做什么?
  • 有没有办法配置git使一个普通的git push自动推送到正确的refs/ref?

目前,像建议我发现最好的办法是在包装一个单独的脚本都在这里.但我仍然不相信只有合适的refspec是不可能的.

mic*_*has 1

根据消息来源,Git 目前push.default = upstream通过生成包含显式名称的显式 refspec 来实现。

似乎目前无法通过单个通用 refspec 来指定该行为,而构建显式 refspec 的某些脚本(如此处建议的是目前唯一的方法。