Java教程

Github修改username后修复git历史异常

本文主要是介绍Github修改username后修复git历史异常,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1. 修改 ~/.gitconfig 文件中的 user.name, user.email.

  2. 将下面的脚本文件 git-user-change.sh 放在需要修改的项目的上一层文件夹中, 脚本的源码中需要修改对应的用户名和邮箱.

  3. 在项目根目录下执行 sh ../git-user-change.sh 便开始自动化重写所有脚本能匹配到的提交信息了. 拥有条件判断的此脚本, 最大的好处便是, 不会覆盖掉团队协作项目中, 他人的提交信息.
    下面这条命令会将项目 Git 所有历史里删除对 src.zip 的记录, 整个 .git 文件夹会轻很多. git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch ./src.zip' --prune-empty --tag-name-filter cat -- --all

  4. 强制更新 git push origin --force, 如果需要授权, 在 github 上修改 SSH 公钥.

  • 下面是 git-user-change.sh 的代码, 保存后执行上面的命令, 其中 if 中的判断条件是原来的邮箱, then 中是现在的名字和邮箱.
#!/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" = "willsnowdev@gmail.com" ]
    then
        cn="shengwei.xu"
        cm="shengwei.xu@qq.com"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "willsnowdev@gmail.com" ]
    then
        an="shengwei.xu"
        am="shengwei.xu@qq.com"
    fi
 
    export GIT_AUTHOR_NAME="$an"
    export GIT_AUTHOR_EMAIL="$am"
    export GIT_COMMITTER_NAME="$cn"
    export GIT_COMMITTER_EMAIL="$cm"
'

参考文章

这篇关于Github修改username后修复git历史异常的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!