6

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

GITK

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

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

  1. Cherry Pick Commit 2. 我使用从 Gerrit 获得的cherry-pick 命令进行该更改: 樱桃采摘提交 2

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

当我收到关于我的提交(提交 1)的评论意见时,我会在 Gerrit 上为它推送新的补丁集。但是,当最终要合并时,它需要位于其父级的最新补丁集上(提交 2)。我现在这样做的方式如下:

  1. git结帐工作2
  2. git reset --hard remotes/origin/head
  3. Cherry-pick Commit 2 ---> 这让我得到了最新版本的 Commit 2
  4. 樱桃采摘提交 1
  5. git push origin working2:refs/for/head

有没有一种方法可以让我在不执行上述所有操作的情况下获得最新的 Commit 2 补丁集?也许某种交互式樱桃挑选或变基?

4

1 回答 1

8

您可以简单地将 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,请查看 此处

于 2012-07-31T15:57:26.553 回答