如果不创建分支并在新分支上做一堆时髦的工作,是否可以在将单个提交提交到本地存储库后将其分解为几个不同的提交?
git rebase -i会做的。
git rebase -i
首先,从一个干净的工作目录开始:git status应该没有待处理的修改、删除或添加。
git status
现在,您必须决定要拆分哪些提交。
要拆分您最近的提交,首先:
$ git reset HEAD~
现在以通常的方式单独提交各个部分,根据需要生成尽可能多的提交。
这就需要rebase,也就是重写历史。要指定正确的提交,您有多种选择:
$ git rebase -i HEAD~3
它3有多少次提交。
3
$ git rebase -i 123abcd~
123abcd您要拆分的提交的 SHA1 在哪里。
123abcd
master
$ git rebase -i master
当你得到 rebase 编辑屏幕时,找到你想要拆分的提交。在该行的开头,替换pick为edit(e简称)。保存缓冲区并退出。Rebase 现在将在您要编辑的提交之后停止。然后:
pick
edit
e
以通常的方式单独提交各个部分,根据需要生成尽可能多的提交。
最后
$ git rebase --continue