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?
我有一个本地分支,提交如下: 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?