使用两个git提交

时间:2015-01-12 15:07:36

标签: git gerrit git-gui changelist

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

我做了第一次提交,把它推给了gerrit进行审查。

我开始进一步开发并做了第二次提交,也将它推向了gerrit进行审核。

现在,我在第一次提交时遇到了一些合并冲突,在第二次提交时遇到了一些反馈。我必须将这些变化纳入其中:

我遵循了以下步骤:

  1. git reset --soft Head~1 - >这使HEAD变为先前的变化

  2. 已解决的冲突

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

  4. 纳入对Commit2的反馈

  5. 从Commit2添加了所有文件并进行了新的提交。现在无法从git gui修改Commit2。

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

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

1 个答案:

答案 0 :(得分:0)

当您拥有链式评论列表时,使用gerrit可能会有问题。在这种情况下,我倾向于做以下事情:

  • 从第一次提交的父级创建一个新的(本地)分支。
  • Cherry选择Gerrit的第一个提交到我的本地分支,并使用git commit --amend
  • 进行更正
  • 现在,我在第一次提交的修订版本之上挑选第二次提交
  • 解决任何创建的冲突
  • 使用git commit --amend
  • 解决审核中的反馈
  • 然后pushup两次提交git push origin <local branch>:refs/for/<remote branch>

您可以直接从Gerrit GUI获取更改的樱桃选择URL,这样可以保留提交消息中的change-id,这样您就可以为每个评论获得一个新的补丁集,并且它们仍然是链接的

Git GUI应用程序是探索存储库及其历史记录的有用方法。但他们从来没有真正揭露git命令行的全部功能。