0


Git 修改已提交的用户名和邮箱

描述

有些时候,可能你在 Git 提交的时候不经意间提交了错误的 Commit 作者信息,那么如何修改成正确的呢?

如果尝试修改 Git 的提交邮箱

git config –global user.name “Your Name”
git config –global user.email “Your Email”

这样可以修改作者的名字和邮箱

但是,这种方法只对之后的 Commit 有效,之前提交过的就改不了了…

还好,Google 到了一种解决办法,这里分享下,也算是做个记录

修改

1、打开终端(Linux 的终端或 Windows 下 Git 客户端的 git-bash.exe 均可)
2、同步下来你的项目并进入目录(以 repo.git 为例)

git clone –bare https://github.com/user/repo.git
cd repo.git

3、复制下面的脚本,可以直接复制到终端命令行里或新建 Shell 脚本
并修改

oldEmail、 newName、newEmail

三个变量为你自己的

git filter-branch --env-filter '

oldEmail="你的旧邮箱"
newName="你的新名字"
newEmail="你的新邮箱"if["$GIT_COMMITTER_EMAIL"="$oldEmail"]; then
    export GIT_COMMITTER_NAME="$newName"
    export GIT_COMMITTER_EMAIL="$newEmail"
fi

if["$GIT_AUTHOR_EMAIL"="$oldEmail"]; then
    export GIT_AUTHOR_NAME="$newName"
    export GIT_AUTHOR_EMAIL="$newEmail"
fi

' --tag-name-filter cat ----branches --tags

4、执行脚本,看到一堆 rewritten 的时候就说明写入完成了

5、git log 查看新的 Commit 信息是否正确

提交

git pull
# 也是提交,没试过
git push –force –tags origin ‘refs/heads/*’

删除临时文件

cd ..
rm -rf repo.git

需要注意的是,上面的执行后,新 clone 出来的项目 Log 中 Name 和 Email 已经为最新的信息。

在执行上面的几步之前已经 clone 出来的项目中,如果执行 git pull 的话,Log 中的 Name 和 Email 信息还是原来的信息

这样就算是完成了

我的其他文章

亲身分享 一次 字节跳动 真实面试经历和面试题

其他薅羊毛网站

自己做的小商城,感兴趣可以相互讨论技术呀!

字节小柜:https://store.ityao.cn/

标签: git github bash

本文转载自: https://blog.csdn.net/u014641168/article/details/125414820
版权归原作者 张童瑶 所有, 如有侵权,请联系我们删除。

“Git 修改已提交的用户名和邮箱”的评论:

还没有评论