有时候对于已经完成的提交想要重新切分成多个commit。
例如,新建三个文件1 2 3,然后一起提交。
commit e8772b47bbd60c8fbfec2652da6501e5b6442fdc (HEAD -> master)
Author: xxx <xx.xx@xx.com>
Date: Wed Apr 21 13:24:08 2021 +0800
new file 1 2 3
现在我不像让他们一起提交了,我想单个文件提交。这时候用git reset --soft就可以做到。
git reset --soft HEAD^
# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: 1
new file: 2
new file: 3
现在文件又回到stage区域了,这时候只需单独提交文件即可。
当然,这种方法只能适用于文件粒度的切分,如果是文件内部的切分,那就只能手动打补丁了。