如何重新选择樱桃挑选父母的新版本

时间:2012-07-31 10:08:17

标签: git git-rebase gerrit

考虑以下突出显示的提交:

GITK

对于目前的讨论,我将参考如下提交: 提交1:从用户设置中读取语言设置 提交2:[POC]不审核

我们使用Gerrit进行代码审查。 Commit 1和Commit 2都在审核中,尚未合并。我正在使用Commit 1,它需要在Commit 2中使用代码,因此必须以它为基础。这些是我使用的命令:

  1. Cherry Pick Commit 2.我使用来自Gerrit的cherry-pick命令进行更改: Cherry-pick Commit 2

  2. 进行我的工作所需的更改并推送变为Commit 1的更改。当我第一次推送Commit 1时,它基于Commit 2的补丁集8。

  3. 当我收到有关我的提交(提交1)的评论评论时,我会在Gerrit上为它推送新的补丁集。但是,当它最终要合并时,它需要在它的父(Commit 2)的最新补丁集上。我现在的方式如下:

    1. git checkout working2
    2. git reset --hard remotes / origin / head
    3. Cherry-pick Commit 2 --->这让我得到了最新版本的Commit 2
    4. Cherry-pick Commit 1
    5. git push origin working2:refs / for / head
    6. 有没有办法可以在不执行上述所有操作的情况下获取最新的Commit 2补丁集?也许是某种互动的樱桃挑选或反叛?

1 个答案:

答案 0 :(得分:5)

您可以简单地将Commit 1重新绑定到FETCH_HEAD。在working2分支上,

$ git fetch ssh://user@gerrit.dev.xyz.net:29418/management-console refs/changes/26/11926/11 
$ git rebase -i FETCH_HEAD

使用Commit 2的提交消息(通常是第一行)删除该行。现在,Commit 1将位于最新的Commit 2之上。如果您不熟悉交互式rebase,请查看here