如何在Gerrit中创建新的Patchset?

15
3个回答

31

步骤1:为Gerrit安装commit-msg钩子

scp -p -P 29418 <gerrit_url>:hooks/commit-msg .git/hooks/

第二步: 创建常规提交并推送(对于Patchset1)

例如:

git add Server.java
git commit -m "server added"
git push origin HEAD:refs/for/master

步骤3: 在对Server.java做了一些更改后

最后创建新的Patchset (Patchset 2)

git add Server.java
git commit --amend
git push origin HEAD:refs/for/master

为其他补丁重复第3步


6
有可能有其他人会感到困惑,这句话的意思是你应该推送到 refs/for/master。这不是一个需要你自己去找出远程分支名称的占位符 - 实际上它就是 gerrit 期望的远程分支名称。 - Hamy
1
你不应该安装commit-msg钩子吗?这样做,推送到Gerrit的初始提交将没有change-id。 - larsks
在GitHub中有没有相同的方法可以实现这个? - Md. Ikramul Murad
1
据我所知,GitHub采用不同的代码审查方法。只需使用常规命令进行推送并创建拉取请求即可,因此您无需设置任何额外的内容。 - Gangaraju

4
不要自行添加 Change-Id。按照这里描述的安装commit-msg钩子,它将自动为您创建Change-Id
如果要通过上传新的补丁集来改进已有的补丁,请使用 git-commit --amend 命令,并将 Change-Id 行保持不变。
您可以在此处查看工作流程的说明:http://wiki.typo3.org/Contribution_Walkthrough_with_CommandLine

2
即使您手动添加变更ID,它也应该是提交消息的最后一段。
语法应为:
change ID : [change ID ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接