cherry-pick gerrit 上的提交到另一个分支

在提交到gerrit进行review的时候,每个commit中都要带有一个唯一的change-id字串,当我们在cherry-pick一些commit到另外的分支的时候,如果被cherry-pick的commit已经是在gerrit中了,那么就需要重新生成change-id,否则再重新提交到gerrit的时候会被拒绝。


有两种方式可以办到:
1. 使用cherry-pick -n , 然后用git commit, git log 不会丢失,我们只是需要将change-id那一行删除,系统提交后会自动生成新的唯一change-id.
这个方法操作步骤少,但是当面对几百个需要cherry-pick的提交时,就要重复几百次,尤其是查找和复制hashcode的时候会比较繁琐。







2. 可以在开发分支上调用git rebase --interactive <主分支>, 然后将呈现文字中pick全部改成edit,如此这样,在rebase的过程中,每一个commit都会提醒你使用git commit --amend去修改commit, 你只要将change-id删掉即可,然后执行git rebase --conitue 开始执行下个commit的rebase操作,如此反复,直到所有commit完成rebase。

这种方式适合大量commit需要cherry-pick到另外一个分支的情况。

你可能感兴趣的:(cherry-pick gerrit 上的提交到另一个分支)