美文网首页java成长路漫漫
git 更改所有提交记录中的用户名称和电子邮件地址

git 更改所有提交记录中的用户名称和电子邮件地址

作者: WillM | 来源:发表于2020-06-12 11:44 被阅读0次

    git要修改历史记录中所有提交用户名称或电子邮件地址,可以执行如下操作:

    1.在仓库根目录下新建脚本rename.sh

    #!/bin/sh
    #更改提交中所有邮箱为OLD_EMAIL或用户名为OLD_NAME的为新的用户名和新的邮箱
    
    git filter-branch --env-filter '
    OLD_EMAIL="your-old-email@example.com"
    OLD_NAME="Your Old Name"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_COMMITTER_NAME="$CORRECT_NAME"
        export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_NAME" ]
    then
        export GIT_AUTHOR_NAME="$CORRECT_NAME"
        export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' -f --tag-name-filter cat -- --branches --tags    #-f为强行覆盖
    #取消下面的#注释,将自动强行推送所有修改到主分支
    #git push origin master --force
    

    2.执行一下命令赋予超级权限(如果文件权限不够)

    sudo chmod 777 rename.sh

    3.执行rename.sh脚本

    ./rename.sh

    这样可以用gitk . 或git log看到所有的提交记录用户信息都被修改了;


    image.png

    4.执行–force的推送命令,强行推送到服务器

    git push origin master --force

    缺点

    在github/gitlab/gitee等项目管理中会看到提交总次数增加,但此问题不影响原commit信息的准确性

    官方参考文档

    https://help.github.com/en/github/using-git/changing-author-info
    有参考其他文章但无法找到原作者

    相关文章

      网友评论

        本文标题:git 更改所有提交记录中的用户名称和电子邮件地址

        本文链接:https://www.haomeiwen.com/subject/zhsgtktx.html