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编码的,否则注释中容易出现乱码


推荐文章