Git和合并提交

尼克斯

我有几个提交,例如与一些相似的任务有关的提交:

eedf6b3 Task A (Continue)
12364e5 Task D
da77ed3 Task C
9e1991a Taks B (Continue)
cb345c1 Task A (Continue)
83b1c27 Task B
9b3c83c Task A

我想将类似的任务合并为带有新注释的单个任务。我遇到了'git rebase -i',但是由于某种原因,它没有(或者我误解了它。

克里斯

git rebase是一个非常强大的工具,因此在使用时要小心。共享提交(例如,您已推送到GitHub或以其他方式与协作者共享的提交)通常不是一个好主意rebase

rebase -i假设提交从底部的最旧到顶部的最新,可以使用以下方法重新排列提交:

  1. git rebase -i HEAD~7

    这会将您转储到默认的文本编辑器中,其中包含一个包含containgint的缓冲区,如下所示:

    pick 9b3c83c Task A
    pick 83b1c27 Task B
    pick cb345c1 Task A (Continue)
    pick 9e1991a Taks B (Continue)
    pick da77ed3 Task C
    pick 12364e5 Task D
    pick eedf6b3 Task A (Continue)
    
  2. 首先,修改缓冲区,以使提交您想要顺序进行也就是说,剪切并粘贴,直到得到类似以下内容的内容:

    pick 9b3c83c Task A
    pick cb345c1 Task A (Continue)
    pick eedf6b3 Task A (Continue)
    pick 83b1c27 Task B
    pick 9e1991a Taks B (Continue)
    pick da77ed3 Task C
    pick 12364e5 Task D
    
  3. 现在,将先前提交的一部分的提交从pick更改为squash

    pick 9b3c83c Task A
    squash cb345c1 Task A (Continue)
    squash eedf6b3 Task A (Continue)
    pick 83b1c27 Task B
    squash 9e1991a Taks B (Continue)
    pick da77ed3 Task C
    pick 12364e5 Task D
    
  4. 对所获得的一切满意后,保存文件并退出编辑器。Git会查看您保存的文件,然后像您一样对提交进行重新排序,将标记squash为上一个提交的文件压缩

    这可能会导致冲突,但是如果将不同的任务很好地分开,那么它们就不应该是非常复杂的任务。只需正常解决这些冲突即可。如果出现,Git会提示您如何执行此操作。

Pro Git的更改多个提交消息”部分是有用的参考。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章