最近迁移了
Github上旧的脑残账号,把仓库迁移到新账号的时候无意中发现Github提供了替换Commit的方法,由于仓库里都是自己提交的代码,索性通过Github提供的脚本把旧账号的信息全部替换到新账号,这样新账号还能装上经常Contribution的逼,保证不侧漏。
官方提供了入口:help.github.com/articles/ch…
Gist被DNS污染的问题,要访问还是奉劝扛上梯子为妙。
-
通过以下命令
clone一个想要想改的裸仓库:# user:github账号 # repo.git: 仓库名称 git clone --bare https://github.com/user/repo.git cd repo.git -
复制粘贴脚本,并根据你的信息修改以下变量:
OLD_EMAILCORRECT_NAMECORRECT_EMAIL -
脚本:
#!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" 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_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags
记得权限需要chmod 777才能执行写入
-
执行脚本。
-
查看新
git仓库历史有没有错误。 -
把更改后的历史
push到Github:git push --force --tags origin 'refs/heads/*' -
清除刚才克隆裸仓库。