在过去的几天里,我使用了另一台笔记本电脑,我设置了 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
Run Code Online (Sandbox Code Playgroud)
它不是仅仅更改提交的作者,而是使用我的好电子邮件进行了新的提交,但没有更改旧的提交。
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
Run Code Online (Sandbox Code Playgroud)
正如这里所看到的,但它没有做任何事情......
3. 在其中一个答案中,有人提到我应该使用与我使用的相同的命令。
git rebase -i -p <The last commit with the good email>
但没有“-p”。我尝试过,但它也进行了新的提交,并且没有将旧的提交与旧的日期一起保留。
因此,我需要帮助获取我历史记录中的所有新提交并修复旧提交以获得良好的电子邮件。
感谢所有提供帮助的人!我最终得到了很多不同的方法,但对我来说并没有成功,我最终不得不多次将我的存储库重新设置为更改之前的状态,因为事情变得一团糟。
最后我联系了 Github 支持人员,他们告诉我这样做,结果成功了。我将其发布在这里,希望它可以帮助有类似问题的人。
PS 这与此处建议的答案非常相似,但当我尝试时该答案不起作用。这个有一些小的变化(克隆一个裸副本并在那里执行更改)并且它确实有效。
1 - 在运行此脚本之前,您需要:
您想要更改的作者/提交者字段中显示的旧电子邮件地址 您希望此类提交归因于的正确名称和电子邮件地址 2 - 创建存储库的全新裸克隆:
git clone --bare <external repo URL>.git
cd <reponame>.git
Run Code Online (Sandbox Code Playgroud)
3 - 复制并粘贴脚本,根据您收集的信息替换以下变量:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
Run Code Online (Sandbox Code Playgroud)
#!/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
Run Code Online (Sandbox Code Playgroud)
4 - 按 Enter 运行脚本。
5 - 查看新的 Git 历史记录是否有错误。
6 - 将更正的历史记录推送到:
git push --mirror <GitHub repo URL>.git
Run Code Online (Sandbox Code Playgroud)
7 - 清理临时克隆:
cd ..
rm -rf <reponame>.git
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7103 次 |
| 最近记录: |