Git rebase命令 - 修改以前提交记录

2021-05-29  本文已影响0人  None_Ling

问题简述

在某个分支开发Feature过程中,可能在N次前的某个提交中需要修改用户名,而该分支已经Push到远端。

此时可以在本地分支通过git rebase -i的方式来指定修改某条Commit,修改完后,通过push --force强行同步给远端进行修改。

修改方案

  1. 使用git rebase -i HEAD~n进行修改,此时终端会展示出来从n次前修改到现在的Commit记录。

    git rebase -i Head~2
  2. 将对应commit前的标识从pick改为edit,代表在rebase的过程中该次Commit需要修改。

    image.png
  3. 在修改完后通过wq保存起来,然后开始对每个标记edit的commit进行提交

  4. 通过git commit --amend -author "xx"修改该次提交

  5. 修改完后,通过git rebase --continue完成rebase操作,在本地完成修改

  6. 通过git push --force-with-lease origin remote将本地的提交完全同步到远端

注意事项

  1. 由于该操作会将该N次提交通过产生新提交的方式进行修改,所以最好是force push,否则会产生Merge的操作。
  2. 在rebase前,本地与远端分支最好先pull,保证该分支代码与远端分支,否则在强制push到远端后会有部分提交被覆盖
上一篇 下一篇

猜你喜欢

热点阅读