首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >批量修改log中的提交信息

批量修改log中的提交信息

作者头像
心谭博客
发布2020-04-20 15:47:15
发布2020-04-20 15:47:15
9360
举报
文章被收录于专栏:YuanXinYuanXin

事情的起因是这样的:迷恋的谷歌的我最近申请了一个新的 google 邮箱。然后果断在 github 上更新了邮箱地址,并且删除了之前的 163 等国内邮箱。

回到 github 首页,我发现之前的项目提交记录都没了。到底什么情况(O_o)??

看一张灾难现场图:

仔细查找了相关资料,发现了是因为之前的提交记录中Author字段的信息是 163 等国内邮箱的。如下:

所以,解决方法就是:更改log中的提交信息

简单尝试:

通过百度,发现通过如下命令可以修改:

代码语言:javascript
复制
git commit --amend --author='名称 <邮箱>'

但是,这只能修改最近一条。如何批量修改 log 信息呢?

解决方法

通过 google,发现stackoverflow上早有人提问,请移步墙外。 同时,Github官方也提供了脚本,虽然仓库没了,但是复制脚本,然后执行即可,移步这里

首先,我们创建change.sh脚本,并根据个人信息复制以下脚本

代码语言:javascript
复制
#!/bin/sh

git 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"
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

将脚本移入要修改的git仓库,并执行脚本。修改后的 log 信息如下。

通过git push --force强行推送修改后的 log 信息。

哈哈,我的 github又重新绿了起来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简单尝试:
  • 解决方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档