修改 Git 提交日志的作者信息
这两天遇到一个问题,需要修改一下 Git 提交日志中的作者名称以及电子邮件。好吧,D瓜哥承认,这个需
求很奇葩。原以为不能搞,上网查了一下,可以搞。直接上代码:
# # D瓜哥,http://www.diguage.com # git filter-branch -f --env-filter " GIT_AUTHOR_NAME='diguage' GIT_AUTHOR_EMAIL='leejun119@gmail.com' GIT_COMMITTER_NAME='diguage' GIT_COMMITTER_EMAIL='leejun119@gmail.com' " HEAD
如果需要选择一部分用户来调整,则可以这样如下:
# # D瓜哥,http://www.diguage.com # git filter-branch --commit-filter ' if [ "$GIT_COMMITTER_NAME" = "lijun" ]; then GIT_COMMITTER_NAME="diguage"; GIT_AUTHOR_NAME="diguage"; GIT_COMMITTER_EMAIL="leejun119@gmail.com"; GIT_AUTHOR_EMAIL="leejun119@gmail.com"; git commit-tree "$@"; else git commit-tree "$@"; fi' HEAD~3..HEAD
注意:命令最后 HEAD~3..HEAD
用于指出需要修改的记录范围。
在查看资料是,Stock Overflow 上的一个回答说 Github 的一种搞法是这样的:
# # D瓜哥,http://www.diguage.com # git filter-branch --env-filter ' an="$GIT_AUTHOR_NAME" am="$GIT_AUTHOR_EMAIL" cn="$GIT_COMMITTER_NAME" cm="$GIT_COMMITTER_EMAIL" if [ "$GIT_COMMITTER_EMAIL" = "lijun@diguage.com" ] then cn="diguage" cm="leejun119@gmail.com" fi if [ "$GIT_AUTHOR_EMAIL" = "lijun@diguage.com" ] then an="diguage" am="leejun119@gmail.com" fi export GIT_AUTHOR_NAME="$an" export GIT_AUTHOR_EMAIL="$am" export GIT_COMMITTER_NAME="$cn" export GIT_COMMITTER_EMAIL="$cm" ' HEAD~2..HEAD
最后,再提醒一句,D瓜哥在测试的时候发现,一个库修改一次很顺利。如果修改第二次则需要在最后一个的
前面加上参数 -f
。
参考资料
- Change the author of a commit in Git – Stack Overflow
- Change commit author at one specific commit – Stack Overflow
作 者: D瓜哥,https://www.diguage.com/
原文链接:https://wordpress.diguage.com/archives/140.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
原文链接:https://wordpress.diguage.com/archives/140.html
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。