Git push继续使用错误的用户名编写提交

时间:2019-02-12 10:02:21

标签: git github repository git-commit

我已经在共享计算机上创建了一个新项目,并且我的存储库中的提交使用了错误的Git用户名。我已经在Windows的凭据管理器中更改了凭据,我遵循了this guide,但是作者并没有更改,即使我按它要求输入要输入的用户名和密码,也可以插入我的。不过,在存储库中,提交的作者不是我。我也尝试过this solution,但仍然无法正常工作。

我还能尝试什么?

更新

步骤:
-git commit -m "message"
-git push origin master

然后要求输入电子邮件和密码。我插入我的,它可以正确推送,然后我进入存储库并看到:

enter image description here

在git log之后,我看到了:

enter image description here

一切都混了。

在存储库中,名称不正确。

2 个答案:

答案 0 :(得分:1)

您在错误的前提下进行工作,因此只有在更改方法之前,您才能解决此问题:git push现有提交从一个存储库转移到另一个存储库。转移过程使用您的凭据(https://的管理者凭据或ssh://的存储的ssh凭据),但 commits 已被冻结:它们的名称是为他们的作者和提交者设置的,这些不能更改。

因此,您需要进行新的和不同的提交。进行提交时,Git在此处使用的名称和电子邮件地址不是您在任何凭据中设置的不是数据,也不存储在任何ssh密钥中。相反,它们仅使用您的user.nameuser.email设置。

如果您有现有的提交,可以将它们复制到与原始文件完全相同但又稍有不同的新改进的提交中:

  • 具有不同的作者和提交者名称(您的新名称和改进者,更正的名称),并且

  • 具有不同的哈希ID(因为它们是不同的提交)。

然后您可以告诉Git:丢弃那些棘手的旧提交,而改用我闪亮的新提交。您将不再看到旧提交,而只会看到新提交。如果仔细观察,即使有关它们的所有 else 都是相同的,您也会看到新的具有新的哈希ID。

为此,请参见How to change the author and committer name and e-mail of multiple commits in Git?。请注意,您应该注意仅复制使用错误的名称和电子邮件地址设置所做的提交。链接的问题副本 any 上接受的答案与一个特定的电子邮件地址匹配,因此,如果您误用了Linus Torvalds的电子邮件地址,并在Linux系统上尝试使用,则会被替换他的所有承诺。但是在典型的情况下,如果您的错误电子邮件是唯一的,您将只替换您错误的最后几次提交。

(注意:如果在您的问题中确切显示 您正在采取什么步骤以及 exact 的结果,可能会有所帮助。例如,如果{{1 }}失败,git push,我们将更多地了解发生了什么事情。)

答案 1 :(得分:-1)

设置新的Git用户名,它将自动覆盖配置文件中的旧用户名:

git config --global user.name "My Name"

确认您已正确设置Git用户名:

git config --global user.name

我的名字