抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

为改变已经提交的 commit 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史。执行这段脚本会重写 repo 所有协作者的历史。

完成以下操作后,任何 fork 或 clone 的人必须获取重写后的历史并把所有本地修改 rebase 入重写后的历史中,请谨慎操作。

1.编写脚本 reset.sh

OLD_EMAILNEW_NAMENEW_EMAIL改成你自己的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/sh

git filter-branch -f --env-filter '

OLD_EMAIL="seepine@example.com"
NEW_NAME="seepine"
NEW_EMAIL="seepine@outlook.com"


if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$NEW_NAME"
export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$NEW_NAME"
export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

2.执行

1
sh reset.sh

3.推送到远程仓库

1
git push --force --tags origin ‘refs/heads/*’

评论