Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更新Git提交中的用户名/电子邮件?_Git - Fatal编程技术网

如何更新Git提交中的用户名/电子邮件?

如何更新Git提交中的用户名/电子邮件?,git,Git,我希望在Git历史记录中更新用户的用户名,这可能吗 这是我的一个错误,我不久前从CVS迁移过来,直到所有人都开始使用Git repo,我才意识到我遗漏了几个用户名。这些命令呢 $ git config --global user.name "name" $ git config --global user.email "name@gmail.com" 或者你想要: 由于作者和提交人姓名以及电子邮件是哈希生成提交ID的一部分,因此在不更改提交ID的情况下,无法对现有存储库执行此操作。您需要git

我希望在Git历史记录中更新用户的用户名,这可能吗


这是我的一个错误,我不久前从CVS迁移过来,直到所有人都开始使用Git repo,我才意识到我遗漏了几个用户名。

这些命令呢

$ git config --global user.name "name"
$ git config --global user.email "name@gmail.com"
或者你想要:


由于作者和提交人姓名以及电子邮件是哈希生成提交ID的一部分,因此在不更改提交ID的情况下,无法对现有存储库执行此操作。

您需要git筛选器分支。例如,要更改整个历史记录中每次提交的电子邮件地址,您可以执行以下操作:

$ git filter-branch --env-filter GIT_AUTHOR_EMAIL=new_address $git filter branch--env filter git\u AUTHOR\u EMAIL=new\u地址 您可以将筛选器设置为仅基于所需的任何条件修改提交。例如,如果要为“Barry”编写的所有提交设置电子邮件地址,请执行以下操作:

$git筛选器分支--环境筛选器' 如果测试“$GIT_AUTHOR_NAME”=Barry;然后 GIT_AUTHOR_EMAIL=Barry的正确地址 fi' 这将修改每个提交的SHA1。

看起来是这样的,但是我正在寻找一些不会更新SHA1 ID的东西。 $ git filter-branch --env-filter ' if test "$GIT_AUTHOR_NAME" = Barry; then GIT_AUTHOR_EMAIL=barrys-correct-address fi'