Git提交记录信息修改

122 阅读1分钟

前因:忘记之前支持其他项目修改了全局的git配置,回到项目组后修改bug,修复后直接提交了,导致同一个项目前后提交记录里提交人信息的名字有差别

git 的配置文件可以是全局和当前项目,如果当前项目没有配置个人信息,那提交代码时就会拿全局配置的信息

配置全局级别的config

git config --global user.name '注册名'
git config --global user.email '注册邮箱'

配置项目级别的config

git config --local user.name '注册名'
git config --local user.email '注册邮箱'

对提交作者信息进行修改,解决方案:

1.修改git config 中的用户名和邮箱

git commit --amend --author="username <email>" --no-edit

2.修改完成后

情景一:提交后未push到远程

git commit --amend --reset-author --no-edit

情景二:已经提交到远程

git push -f

注意:上述方式只支持修改最近一次的提交

还可以使用--commit-filter批量修改所有提交记录

1.项目根目录创建文件,添加脚本,执行脚本
git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "oldEmail" ];
        then
                GIT_AUTHOR_NAME="newName";
                GIT_AUTHOR_EMAIL="newEmail";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD
2.git push -f