Git 修改已经 COMMIT 的用户名与邮箱
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 修改已经 COMMIT 的用户名与邮箱相关的知识,希望对你有一定的参考价值。
参考技术A 对于 git 的用户名与邮箱,我们大多数人都有两套,一套公司账户平时工作用和一套个人账户用于业余项目。而我们又常常在 commit 以后才发现用户名与邮箱设置错了。本文总结了如何修改 Commit 的用户名与邮箱。上面的命令只会修改当前项目的配置。如果需要也可以增加 --global 选项来修改当前系统用户的默认配置。
因为修改 Commit 的用户名或邮箱会生成一个新的 commit 来替换之前的 commit 。如果在修改之前已经 push 到了远端,修改后再次 push 会出现冲突。 只能使用 push -f。 如果其他人已经拉取( pull )了旧 commit 会出现很多麻烦。
如果你只需要修改最新的 commit ,直接使用:
如果你已经修改了 git config 中的用户名和邮箱,也可以使用(推荐)
比如,你的 commit 历史为 A-B-C-D-E-F , F 为 HEAD , 你打算修改 C 和 D 的用户名或邮箱,你需要:
git批量修改已经提交的commit的姓名和邮箱
首先,我们创建change.sh脚本,并根据个人信息复制以下脚本。 #!/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 信息如下。
3
通过git push --force强行推送修改后的 log 信息。
哈哈,我的 github又重新绿了起来。
https://stackoverflow.com/questions/750172/how-to-change-the-author-and-committer-name-and-e-mail-of-multiple-commits-in-gi?rq=1 https://help.github.com/articles/changing-author-info/
以上是关于Git 修改已经 COMMIT 的用户名与邮箱的主要内容,如果未能解决你的问题,请参考以下文章