当前位置:   article > 正文

git如何修改某次历史提交的commit信息和代码_git重新提交某次commit

git重新提交某次commit

问题

开发过程中,我们可能遇到一次merge多个commit的情况,在merge之前我们做测试的时候发现某次提交有问题,这时候我们又不想新提一个commit来解决这个问题,这时候该怎么办?

解决方法

git log 查看历史提交
A---B(有bug)----C----D---E
  • 1

发现 B 提交有bug,我们想要直接修改B,但是又不想多增加F提交;或者我们想修改B提交的commit信息。

git rebase 修改历史提交
1. git rebase -i HEAD~5							// rebase HEAD之前的5次提交
  • 1
2. 将需要修改的commit所在的行前面的 pick 修改为edit或者e
  • 1

利用命令行修改文本,将光标移动至B提交前面pick,然后输入i进入修改模式,将pick改为e,然后输入wq保存
pick b4ba123435 A
e 0ae807b99c B
pick 70890e2e86 C
pick aa0778f109 D
pick 630cc16edb E

3. 之后会发现git的分支信息变为   master|REBASE-i 2/5
  • 1
4. 修改bug代码,如果只需要修改commit信息可以跳过此步
  • 1
5. git commit --amend							// 以当前代码重新覆盖本次提交
  • 1
6. 修改commit信息,若不需要修改commit信息则可以直接wq保存结束
  • 1
7. git rebase --continue						// 继续rebase,如果有冲突则解决冲突
  • 1
注意
  • 如果rebase过程中不想rebase了,可以使用
git rebase --abort 								// 终止rebase
  • 1
  • rebase结束后,会修改所有rebase的commitID,如果想要push到远程仓库可能需要强制push
git push [仓库名] [分支] -f
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/493088
推荐阅读
相关标签
  

闽ICP备14008679号