git 如何在不丢失任何其他提交的情况下将旧提交移至头部

git how to move an older commit up to the head without losing any other commits

我有一个本地分支,提交如下: head/master 5 4个 3个 2个 1

我想将 3 移动到头部并且不丢失任何其他提交: head/master 3 5个 4个 2个 1个 这是 rebase 的用途吗? (显然,我是新手)

想法?提前致谢

如果你想做的是重新排序修订,这很简单:

git checkout 2
git cherry-pick 3..5 # this will discard revision 3 so changes from revisions 4 and 5 will be applied
git cherry-pick 3 # apply change from revision 3
# if you like the result
git branch -f master
git checkout master
# push -f if needed because you rewrote history

使用git变基:

 git rebase -i HEAD~5

HEAD~ 之后是数字 5 - 它与您的提交相同。执行此命令后,您的编辑器* 应该运行。它有一个你最近 5 次提交的列表(还记得 HEAD~5 吗?)。现在更改提交列表中提交的位置,然后保存并关闭编辑器。你完成了。提交的位置已更改。

* How do I make Git use the editor of my choice for commits?