修改git commit用户信息

问题

  1. 本地有多个git账号时,容易发⽣忘记设置项⽬默认账号,最后以全局账号提交的情况,其实对代码本⾝并⽆影响,只是提交记录⾥显⽰的是别的名字稍显别扭。
    举例:

    本地有多个git账号时,容易发⽣忘记设置项⽬默认账号,最后以全局账号提交的情况,其实对代码本⾝并⽆影响,只是提交记录⾥显⽰的是
    别的名字稍显别扭。

     git log
     # 输出如下
     commit 3 (HEAD -> branch1)
     Author: a 
     Date: Thu Nov 22 16:22:59 2018 +0800
     commit 3
     commit 2 (HEAD -> branch1)
     Author: a 
     Date: Thu Nov 22 16:22:59 2018 +0800
     commit 2
     commit 1 (HEAD -> branch1)
     Author: a 
     Date: Thu Nov 22 16:22:59 2018 +0800
     commit 1

重置项目用户信息

git config user.name 'b'
git config user.email b@email.com

使⽤amend命令修改commit信息

(注: amend命令只会修改最后⼀次commit的信息,之前的commit需要使⽤
rebase)

git commit --amend --reset-author

通过rebase操作修改历史提交消息

  1. rebase 最近的三个commit

     git rebase -i HEAD~3 
     # 输出如下
     pick 1 commit 1
     pick 2 commit 2
     pick 3 commit 3
  2. 要修改哪个,就把那⾏的pick改为edit,然后退出。例如想修改commit 1的author,光标移到第⼀个pick,按i键进⼊INSERT模式,把pick改为edit

     edit 1 commit 1
     pick 2 commit 2
     pick 3 commit 3
  3. 然后按esc键,退出INSERT模式,输⼊:wq退出,这时可以看到提⽰,可以修commit 1的信息了

  4. 输⼊amend命令重置⽤户信息

     git commit --amend --reset-author

    提交记录及注释内容,可进⼊INSERT模式修改注释,:wq退出。

  5. 查看提交历史,发现commit 1的author已经变成b(b@email.com)了,且是最新⼀次记录。

  6. 通过continue命令回到正常状态

     git rebase --continue

   转载规则


《修改git commit用户信息》 SunnyZhifei 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录