本文须知
- 教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步
- 有空就来看看, 我一直都在
背景介绍
事情的起源是这样的:迷恋的谷歌的我最近申请了一个新的 google 邮箱。然后果断在 github 上更新了邮箱地址,并且删除了之前的 163 等国内邮箱。
回到 github 首页,我发现之前的项目提交记录都没了。到底什么情况(O_o)??
看一张灾难现场图:
仔细查找了相关资料,发现了是因为之前的提交记录中Author
字段的信息是 163 等国内邮箱的。如下:
所以,解决方法就是:更改log
中的提交信息。
简单尝试:
通过百度,发现通过如下命令可以修改:
git commit --amend --author='名称 <邮箱> ' 邮箱>
但是,这只能修改最近一条。如何批量修改 log 信息呢?
解决方法
通过 google,发现
同时,stackoverflow
上早有人提问,。Github
官方也提供了脚本,虽然仓库没了,但是复制脚本,然后执行即可,
首先,我们创建change.sh
脚本,并根据个人信息复制以下脚本。
#!/bin/shgit filter-branch --env-filter 'OLD_EMAIL="填写原来的邮箱"CORRECT_NAME="填写现在的名称"CORRECT_EMAIL="填写现在的邮箱"if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"fiif [ "$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
将脚本移入要修改的git
仓库,并执行脚本。修改后的 log 信息如下。
通过git push --force
强行推送修改后的 log 信息。
哈哈,又重新绿了起来。