背景
公司使用 Gerrit 作为 Review 平台,但是每次提交代码都需要手动添加 Reviewer,还要抄送组内成员,这种重复性劳动,程序员是绝不能容忍的。gerrit 提供了发送邮件的功能。
解决方法
官方示例:
git push ssh://john.doe@git.example.com:29418/kernel/common HEAD:refs/for/experimental%r=a@a.com,cc=b@o.com
最后的%
是个分隔符,r='a@a.com
表示 Reviewer 是a@a.com
,cc=b@o.com
表示抄送组内成员是b@o.com
。
注意!邮箱之间不能有空格!
以一个仓库为例:
git push origin HEAD:refs/for/branch_dev_name%cc=zhangsan@qq.com,cc=lisi@qq.com,cc=wangerma@qq.com,cc=chenwu@qq.com
但是要这么写,岂不是把操作搞更复杂了。
终极办法,打开项目路径下的.git
目录。编辑config
文件:
原文件里有如下字段:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = git@github.com:Dunky-Z/Dunky-Z.github.io.git
fetch = +refs/heads/*:refs/remotes/origin/*
我们可以将远程仓库名换成容易区分的名字,自己随意:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = git@github.com:Dunky-Z/Dunky-Z.github.io.git
fetch = +refs/heads/*:refs/remotes/origin/*
# 以下为新增内容
[remote "review"]
url = git@github.com:Dunky-Z/Dunky-Z.github.io.git
fetch = +refs/heads/*:refs/remotes/origin/*
push = HEAD:refs/for/%cc=zhangsan@qq.com,
cc=lisi@qq.com,
cc=wangerma@qq.com,
cc=chenwu@qq.com
下次想要推送需要 review 的代码,就直接执行git push review
,其中push
就相当于:
push HEAD:refs/for/%cc=zhangsan@qq.com,cc=lisi@qq.com,cc=wangerma@qq.com,cc=chenwu@qq.com