修改 Git 提交日志的作者信息
这两天遇到一个问题,需要修改一下 Git 提交日志中的作者名称以及电子邮件。好吧,D瓜哥承认,这个需
求很奇葩。原以为不能搞,上网查了一下,可以搞。直接上代码:
05 | git filter-branch -f -- env -filter " |
06 | GIT_AUTHOR_NAME= 'diguage' |
07 | GIT_AUTHOR_EMAIL= 'leejun119@gmail.com' |
08 | GIT_COMMITTER_NAME= 'diguage' |
09 | GIT_COMMITTER_EMAIL= 'leejun119@gmail.com' |
如果需要选择一部分用户来调整,则可以这样如下:
05 | git filter-branch --commit-filter ' |
06 | if [ "$GIT_COMMITTER_NAME" = "lijun" ]; |
08 | GIT_COMMITTER_NAME= "diguage" ; |
09 | GIT_AUTHOR_NAME= "diguage" ; |
10 | GIT_COMMITTER_EMAIL= "leejun119@gmail.com" ; |
11 | GIT_AUTHOR_EMAIL= "leejun119@gmail.com" ; |
注意:命令最后 HEAD~3..HEAD
用于指出需要修改的记录范围。
在查看资料是,Stock Overflow 上的一个回答说 Github 的一种搞法是这样的:
05 | git filter-branch -- env -filter ' |
07 | am= "$GIT_AUTHOR_EMAIL" |
08 | cn= "$GIT_COMMITTER_NAME" |
09 | cm= "$GIT_COMMITTER_EMAIL" |
11 | if [ "$GIT_COMMITTER_EMAIL" = "lijun@diguage.com" ] |
14 | cm= "leejun119@gmail.com" |
16 | if [ "$GIT_AUTHOR_EMAIL" = "lijun@diguage.com" ] |
19 | am= "leejun119@gmail.com" |
22 | export GIT_AUTHOR_NAME= "$an" |
23 | export GIT_AUTHOR_EMAIL= "$am" |
24 | export GIT_COMMITTER_NAME= "$cn" |
25 | export GIT_COMMITTER_EMAIL= "$cm" |
最后,再提醒一句,D瓜哥在测试的时候发现,一个库修改一次很顺利。如果修改第二次则需要在最后一个的
前面加上参数 -f
。
参考资料