如何正确地更改GitHub中过去几个提交的提交作者? [英] How do I properly change the author of a commit for the past few commits in github?

查看:0
本文介绍了如何正确地更改GitHub中过去几个提交的提交作者?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在过去的几天里,我使用了另一台笔记本电脑,我设置了Git并登录,但我不小心将我的用户名与错误的电子邮件一起使用。

今天我注意到我过去几天的提交没有显示在我的GitHub个人资料仪表板上,所以我检查了一下发生了什么,并注意到我使用了错误的电子邮件登录。

我尝试了几种不同的方法来修复它,但都不起作用。

1.

git rebase -i -p <The last commit with the good email>

则为每次提交。

git commit --amend --author="good name <good email>" --no-edit
git rebase --continue

不只是更改提交的作者,它使用我的Good电子邮件进行了新的提交,但没有更改旧的。

2.

git filter-branch --env-filter 'if [ "$GIT_AUTHOR_EMAIL" = "incorrect@email" ]; then
     GIT_AUTHOR_EMAIL=correct@email;
     GIT_AUTHOR_NAME="Correct Name";
     GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL;
     GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; fi' -- --all

here所示,但它没有执行任何操作...

3. 在其中一个答案中,有人提到我应该使用与我使用的命令相同的命令。

git rebase -i -p <The last commit with the good email>

但没有&p;-p&q;。我尝试过,但它也进行了新提交,并且不保留旧提交和旧日期。


因此,我需要帮助获取我历史记录的所有新提交,并修复旧提交以获得好的电子邮件。

推荐答案

感谢所有帮助过我们的人!我最终得到了很多不同的方法,但对我来说并不奏效,因为事情搞砸了,我不得不多次将回购重新设置为更改前的状态。
最后,我联系了Github Support,这是他们告诉我的,它奏效了。我把它贴在这里,希望它能帮助有类似问题的人。

附注:这与建议的答案here非常相似,但当我尝试时,该答案不起作用。此方法有一些小的更改(克隆一个裸副本并在那里执行更改),并且它确实起作用了。


1-在运行此脚本之前,您需要:

显示在要更改的作者/提交者字段中的旧电子邮件地址 您希望将此类承诺归因于的正确名称和电子邮件地址 2-创建存储库的全新裸克隆:

  git clone --bare <external repo URL>.git
  cd <reponame>.git

3-复制并粘贴脚本,根据您收集的信息替换以下变量:

OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
  #!/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

4-按Enter键运行脚本。

5-查看新的Git历史记录中的错误。

6-将更正的历史推送到:

  git push --mirror <GitHub repo URL>.git

7-清理临时克隆:

  cd ..
  rm -rf <reponame>.git

这篇关于如何正确地更改GitHub中过去几个提交的提交作者?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆