2

背景

在工作中我们经常会被要求使用特定的账号和邮箱提交代码,但有时git配置的错误,导致提交了很多错误的commit,push被拦截。这时候我们可以git指令来修改已经提交的commit,来解决问题。

指令讲解

  1. git log 查看commit id
  2. git rebase -i <最早commit> 重新设置基准线
  3. git commit --amend --author="Author Name <email@address.com>" 来修改commit
  4. `git rebase --continue 移动到下个commit作为基准线

例子

如当前历史为 A-B-C(HEAD),我想修改B和C,这两个commit的作者。

  1. git rebase -i A

    • 如果想改A则使用git rebase -i --root
  2. pick 改为 edit。按ESC,输入:wq。保存修改。
  3. 现在你已经开始可以修改,此时当前commit为B。
  4. git commit --amend --author="Author Name <email@address.com>" 修改B的提交。
  5. git rebase --continue 定位到C
  6. git commit --amend --author="Author Name <email@address.com>" 修改C的提交。
  7. git rebase --continue 修改已完成。
  8. git push -f 提交代码,大功告成。

changsongl
4 声望1 粉丝

Hello, World!