我有几个提交,例如与一些相似的任务有关的提交:
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
假设提交从底部的最旧到顶部的最新,可以使用以下方法重新排列提交:
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)
首先,修改缓冲区,以使提交按您想要的顺序进行。也就是说,剪切并粘贴,直到得到类似以下内容的内容:
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
现在,将先前提交的一部分的提交从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
对所获得的一切满意后,保存文件并退出编辑器。Git会查看您保存的文件,然后像您一样对提交进行重新排序,将标记squash
为上一个提交的文件压缩。
这可能会导致冲突,但是如果将不同的任务很好地分开,那么它们就不应该是非常复杂的任务。只需正常解决这些冲突即可。如果出现,Git会提示您如何执行此操作。
Pro Git的“更改多个提交消息”部分是有用的参考。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句