重新排序本地提交
Reorder local commits
我想在我的本地分支重新排序 git 提交,目前,我的分支看起来像这样。
x-x-x-x-x-x-x-0-1-2-3
现在我想把顺序改到下面
x-x-x-x-x-x-x-0-2-1-3
git怎么可能?
可以使用 git rebase -i 0
完成(0 是您示例中的修订 ID 0),您可以在那里重新排序应用修订的方式,但是如果您 真的 想要控制,可以这样做(假设分支叫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
就是这样。
您可以使用交互式变基:
git rebase -i HEAD~4
这将调出如下所示的编辑器:
pick 39vm3ie commit 0
pick md93ndj commit 1
pick 25sf3kd commit 2
pick 03kdoj3 commit 3
请注意,最后四个提交按顺序出现,从顶部的 oldest 到底部的 newest。由于您想更改 1 和 2 提交的顺序,您可以按如下方式重新排列它们:
pick 39vm3ie commit 0
pick 25sf3kd commit 2
pick md93ndj commit 1
pick 03kdoj3 commit 3
现在只需保存编辑器并关闭,这将启动变基。您可能必须在此过程中解决一些合并冲突,因为变基会重写历史。请注意,因为您正在重写历史记录,所以应该避免在 public 可能已被其他开发人员检出的分支上使用此选项。
我想在我的本地分支重新排序 git 提交,目前,我的分支看起来像这样。
x-x-x-x-x-x-x-0-1-2-3
现在我想把顺序改到下面
x-x-x-x-x-x-x-0-2-1-3 git怎么可能?
可以使用 git rebase -i 0
完成(0 是您示例中的修订 ID 0),您可以在那里重新排序应用修订的方式,但是如果您 真的 想要控制,可以这样做(假设分支叫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
就是这样。
您可以使用交互式变基:
git rebase -i HEAD~4
这将调出如下所示的编辑器:
pick 39vm3ie commit 0
pick md93ndj commit 1
pick 25sf3kd commit 2
pick 03kdoj3 commit 3
请注意,最后四个提交按顺序出现,从顶部的 oldest 到底部的 newest。由于您想更改 1 和 2 提交的顺序,您可以按如下方式重新排列它们:
pick 39vm3ie commit 0
pick 25sf3kd commit 2
pick md93ndj commit 1
pick 03kdoj3 commit 3
现在只需保存编辑器并关闭,这将启动变基。您可能必须在此过程中解决一些合并冲突,因为变基会重写历史。请注意,因为您正在重写历史记录,所以应该避免在 public 可能已被其他开发人员检出的分支上使用此选项。