git:cherry-picking一个较新的gerrit补丁

时间:2015-02-21 00:29:12

标签: android git

我正在使用Android开发,所以我从其他gerrits中挑选了一些提交。

编辑:在这张图片中你可以看到我在说什么:

http://i.imgur.com/1oHgqVM.png(抱歉,我无法在此处发布图片)

我已经选择了我的源补丁1,我上传到了我的github。

现在我看到他们上传了补丁3,所以:

我应该对我的樱桃选择(补丁1)进行git还原,做一个最新补丁的樱桃选择,然后将其上传到我的github吗?

或者有没有办法告诉github我想用新修补程序覆盖我做的提交(从补丁1升级到补丁3)?

1 个答案:

答案 0 :(得分:1)

您想要摆脱补丁1 并将其替换为补丁3

您首先需要使用 git review -d change 获取补丁3 提交,其中更改是gerrit审核编号。

假设补丁1 具有SHA a302c44而补丁3 具有SHA 85050faa,并且您在工作分支中有五个提交(您上传到github的那个)。您现在可以运行 git rebase -i HEAD~5 ,它将打开一个类似于以下内容的编辑器:

pick 1b7585b stop.sh: only try killing processes that belong to me
pick a302c44 THIS IS PATCH 1
pick 1eb0cd5 osd: only verfy OSDMap crc if it is known
pick 3f6be22 doc: Updates man page for ceph-disk.
pick 2862a49 doc: Adds updated man page for ceph-disk under man/

您手动将 a302c44 替换为 85050faa (您可以忽略该评论,不会将其考虑在内)。保存并关闭编辑器后,git rebase将摆脱补丁1提交(因为它没有显示在任何地方)并使用补丁3提交。