通过跟踪分支向Gerrit"git push"

Joh*_*aye 5 git push gerrit refspec

推动对Gerrit的更改需要相当深奥的命令

git push origin HEAD:refs/for/branchname

我们编写了这个脚本,但我正在寻找一种本地化的方法.使用git强大的配置,看起来我可以预先配置它的大部分[1],这样就git push足够了......差不多.我坚持参考remote.<name>.pushrefspec.

我已经可以创建一个跟踪主题分支,以便git pull(没有其他参数)将更改从上游远程转移到我的主题分支.但是对于Gerrit,push和fetch引用refspecs是不一样的:一个从中获取(合并)refs/heads/trackbranch,但是一个推送到refs/for/trackbranch[2]

我可以配置pushrefspec remote.<name>.push,但语法非常基本:如果我放 push = refs/heads/*:refs/for/*

然后,这将尝试推动我的t-foo主题分支refs/for/t-foo.但是git有t-foo跟踪的信息trackbranch.我可以定义一个refspec,以便git自动尝试将任何内容推t-foo送到它refs/for/trackbranch吗?

我们目前正在使用脚本来执行此操作,我想我可以为每个主题分支定义推送refspec(可能通过更多脚本).我希望有一种本地的git方式,这样我们就不需要为我们的团队依赖更多的自定义内部脚本了.

[1]通过git checkout origin/upstream_branch -b topic_branch在现有分支中定义跟踪分支git branch --set-upstream-to origin/upstream_branch

[2]推动refs/for/*创建变更集以供审核.有了适当的权限,人们可以推动refs/heads/*绕过审查,但这否定了Gerrit的大部分观点.

gep*_*och 1

你研究过 git-review 插件吗?它应该非常符合要求!

https://pypi.python.org/pypi/git-review