修改 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
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
