关于修改git中已提交commit的邮箱和用户名,很想完全转载这篇文章,因为对于少数用户名的修改来说,是很干净的修改。但是生怕哪天这篇文章不见了,就摘抄其中关键的步骤。
# 第一步,(n)代表提交次数
git rebase -i HEAD~n //备注:也可通过HASH来访问,同时要表明次数,否则会是noop
# 第二步
然后按`i`编辑,把`pick` 改成 `edit`,按'Esc'退出编辑,按`:wq`保存退出
# 第三步
git commit --amend --author="作者 <邮箱@xxxx.com>" --no-edit
# 第四步
git rebase --continue
# 第五步
git push --force
使用脚本去更改的方式也进行了测试,功能是行,但是会将本地的log弄的比较乱,尤其是通过gitk --all查看提交树的时候,不是太理想的感觉。 下面就直接备份shell代码。
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"
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
149

被折叠的 条评论
为什么被折叠?



