我想在我的本地分支重新排序git commits,目前,我的分支看起来像这样。
x-x-x-x-x-x-x-0-1-2-3
现在我想将顺序更改为以下
x-x-x-x-x-x-x-0-2-1-3git怎么办?
您可以使用交互式资源库:
git rebase -i HEAD~4
这将显示一个如下所示的编辑器:
pick 39vm3ie commit 0
pick md93ndj commit 1
pick 25sf3kd commit 2
pick 03kdoj3 commit 3
请注意,最后四个提交从顶部的最旧到底部的最新依次显示。由于您要更改1和2提交的顺序,因此可以如下重新排列它们:
pick 39vm3ie commit 0
pick 25sf3kd commit 2
pick md93ndj commit 1
pick 03kdoj3 commit 3
现在只需保存编辑器并关闭,这将启动重新设置基准。您可能必须解决一些合并冲突,因为重新编制基础会重写历史记录。请注意,由于您正在重写历史记录,因此应该在可能已被其他开发人员签出的公共分支上避免使用此选项。
可以用git rebase -i 0
完成(0是示例中的修订ID,0),您可以在其中重新排列修订的应用方式,但是如果您[[really想要控制,可以这样做(假设分支称为A并指向3):
git checkout A~3
git cherry-pick A~1
git cherry-pick A~2
git cherry-pick A
如果您喜欢结果:
git branch -f A # point A where we are standing right now git checkout A
就是这样。