前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >修改Git全部Commit提交记录的用户名Name和邮箱Email

修改Git全部Commit提交记录的用户名Name和邮箱Email

作者头像
沈唁
发布2018-10-10 11:09:15
11.8K0
发布2018-10-10 11:09:15
举报
文章被收录于专栏:沈唁志沈唁志

最近Github的服务不太稳定,感觉要凉的节奏?

这两天好不容易有空提交一下开源代码了,结果在公司提交的代码有记录,但是没有绿色,延迟?真的要凉

检查后发现原因是 git 本地设置的全局邮箱和用户名跟 github 网站的不一致

单独配置项目的邮箱和用户名却是可以显示绿色的

我在公司配置的是公司的邮箱,没有配置我自己的邮箱

写个脚本文件来处理一下吧

此方法也适用于当我们换邮箱了,想把已经提交过的 commit 的邮箱和用户名改成新的时候

先来看一下开始的提交记录

先来把邮箱和名称配置一下

代码语言:javascript
复制
git config user.name 'sy-records'
git config user.email '52o@qq52o.cn'

这时候就可以用下面的脚本代码了

在项目根目录下创建 email.sh 写入下面这段代码

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

git filter-branch --env-filter '

OLD_EMAIL="fphd_xian_lufei@fphd"
CORRECT_NAME="sy-records"
CORRECT_EMAIL="52o@qq52o.cn"

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

OLD_EMAILCORRECT_NAMECORRECT_EMAIL改成自己的新旧邮箱用户名即可

然后我们来执行一下这个.sh文件

代码语言:javascript
复制
./email.sh

如果commit记录比较多的话执行的时间会比较长

再查看git log可以看到已经修改成功

如果执行失败的话,执行一下这段命令

代码语言:javascript
复制
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

再运行./email.sh脚本

这时候虽然本地修改成功了,但是你还没有推送到远程

所以再执行一下命令

代码语言:javascript
复制
git push origin --force --all

去看一下Github你就会发现之前的绿色加上了

沈唁志|一个PHPer的成长之路! 原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:修改Git全部Commit提交记录的用户名Name和邮箱Email

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档