美文网首页开发技巧iOS·葵花宝典
Github仓库迁移,替换Commit数据信息

Github仓库迁移,替换Commit数据信息

作者: Andy矢倉 | 来源:发表于2017-04-10 22:00 被阅读74次

最近迁移了Github上旧的脑残账号,把仓库迁移到新账号的时候无意中发现Github提供了替换Commit的方法,由于仓库里都是自己提交的代码,索性通过Github提供的脚本把旧账号的信息全部替换到新账号,这样新账号还能装上经常Contribution的逼,保证不侧漏。

官方提供了入口:https://help.github.com/articles/changing-author-info/

Gist被DNS污染的问题,要访问还是奉劝扛上梯子为妙。

  • 通过以下命令clone一个想要想改的裸仓库:
# user:github账号
# repo.git: 仓库名称
git clone --bare https://github.com/user/repo.git
cd repo.git
  • 复制粘贴脚本,并根据你的信息修改以下变量:
    OLD_EMAIL
    CORRECT_NAME
    CORRECT_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仓库历史有没有错误。

  • 把更改后的历史pushGithub

git push --force --tags origin 'refs/heads/*'
  • 清除刚才克隆裸仓库。

想我大iOS界有很多恶心的逼,最后提醒那些别有用心人,莫用这个方法去盗别人仓库。不是你的,再怎么装逼也不是你的。

相关文章

网友评论

    本文标题:Github仓库迁移,替换Commit数据信息

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