Git修改历史提交的信息
起因
公司内部使用的gitlab分支上可以使用未注册的用户提交,但是在master分支上必须是注册用户,就算是提交分支成功了,再往master合并的时候也会出错,所以只能修改历史提交纪录
解决
本质上就是使用git filter-branch
,这里是这个命令的详细文档,另外github上提供了一个脚本
#!/bin/sh
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" = "[email protected]" ]
then
cn="Your New Committer Name"
cm="Your New Committer Email"
fi
if [ "$GIT_AUTHOR_EMAIL" = "[email protected]" ]
then
an="Your New Author Name"
am="Your New Author Email"
fi
export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'
地址,注意如果你把cm或者am换成中文的,一定要保证脚本文件是utf-8编码的,否则注释中容易出现乱码