|||
有时候会发现commit有错误想补救,如果这个有问题的commit是最后一个,那么直接用
git commit --amend --no-edit
就好了。其中--no-edit是指不修改commit的message。
如果想修补的commit不是最后一个,就需要用rebase来修复了。修复步骤如下:
1.得到版本历史和相应的hash code
git log
2. rebase到你想修改的那次commit的父节点
git rebase -i bcv765x
3.是一个命令会弹出一个vi编辑器,里边有相应的解释。我们此时要做的就是把你想修改的那个commit前边的‘pick’改成‘edit’,然后保存退出。
4.此时rebase会挂起,等待我们进行需要的编辑。现在就要做的修改完成,然后用 --amend模式commit.
5.继续rebase,吸收(pick)后续的commit。如果没有冲突的话,修复就此完成了。
git rebase --continue
注意,这么一来的话所有受影响的commit的hash code都会改变。所以,强烈建议再做任何修改之前都从master branch出来一个新的分支,并且在 merge到 master之前一定要充分测试。在mater分支不建议进行rebase操作,宁愿多用一次commit来修复问题。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-25 05:27
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社