0

我正在使用 git 作为版本控制项目。

我做了第一次提交,将其推送给 gerrit 进行审查。

我开始了进一步的开发并进行了第二次提交,也将其推送给了 gerrit 进行审查。

现在,我在第一次提交时遇到了一些合并冲突,在第二次提交时遇到了一些反馈。我必须合并这些更改:

我遵循以下步骤:

  1. git reset --soft Head~1 --> 这得到了 HEAD 到以前的变化

  2. 已解决的冲突

  3. 为 Commit1 上传了新的补丁集(我使用了git gui- 修改上次提交选项)

  4. 合并对 ​​Commit2 的反馈

  5. 添加来自 Commit2 的所有文件并重新提交。git gui从现在开始没有修改 Commit2 的选项。

在这种情况下理想情况下应该做什么,以便我可以修改以前的 Commit2 而不是创建新的提交。

PS:情况变得更加棘手,如果这些更改之间合并了一些其他更改。这会在选择时获得这些更改Amend Last Commit

4

1 回答 1

0

当您有一个链式评论列表时,使用 gerrit 可能会出现问题。在这种情况下,我倾向于执行以下操作:

  • 从第一个提交的父级创建一个新的(本地)分支。
  • Cherry 从 Gerrit 选择第一个提交到我的本地分支,并使用git commit --amend
  • 现在在我的第一个提交的修改版本之上选择第二个提交
  • 解决产生的任何冲突
  • 解决来自评论的反馈使用git commit --amend
  • 然后俯卧撑两个提交git push origin <local branch>:refs/for/<remote branch>

您可以直接从 Gerrit GUI 中获取用于更改的精选 URL,这会在提交消息中保留更改 ID,因此您只需为每次审核获取一个新补丁集,并且它们保持链接。

Git GUI 应用程序是探索存储库及其历史的有用方式。但他们从未真正暴露 git 命令行的全部功能。

于 2015-01-12T16:46:01.503 回答