关于github:Git push使用错误的用户名继续编写提交

Git push keeps writing commit with wrong username

我在一台共享机器上创建了一个新项目,并且我的存储库中的提交在Git上使用了错误的用户名。我已经在Windows的凭据管理器中更改了凭据,我遵循了此指南,但作者没有更改,即使当我按下它时,它要求我输入用户名和密码并插入我的。不过,在存储库中,提交的作者不是我。我也尝试过这个解决方案,但仍然不起作用。

我还可以试试什么?

更新

步骤:-git commit -m"message"。-江户十一〔一〕号

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

enter image description here

在Git日志之后,我看到了:

氧化镁

一切都搞混了。

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


您在一个错误的前提下工作,所以在您更改方法之前,您不能解决这个问题:git push将现有的提交从一个存储库转移到另一个存储库。传输过程使用您的凭证,即来自https://的管理者的凭证,或存储的用于ssh://的ssh凭证,但提交已被冻结:它们具有为其作者和提交者设置的任何名称,并且这些名称不能更改。

因此,您需要做出新的和不同的承诺。提交时,git在这里使用的名称和电子邮件地址不是您在任何凭证中设置的数据,也不是存储在任何ssh密钥中的数据。相反,这些只使用您的user.nameuser.email设置。

如果您有自己喜欢的现有提交,则可以将它们复制到与原始提交几乎完全相同但略有不同的新提交和改进提交:

  • 有一个不同的作者和提交者的名字(你的新的和改进的,修正的),以及

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

然后你可以告诉你的Git:扔掉那些讨厌的旧承诺,用我闪亮的新改进的代替。你将不再看到旧的承诺,只看到新的承诺。如果仔细观察,您会发现新的散列ID具有新的散列ID,即使它们的其他内容都是相同的。

要做到这一点,请看如何在Git中更改多个提交的作者和提交者名称以及电子邮件?。请注意,您应该小心地只复制使用错误名称和电子邮件地址设置所做的提交。链接问题上接受的答案会复制与某个特定电子邮件地址匹配的任何提交,因此,如果您错误地使用了(例如)Linus Torvalds的电子邮件地址,并在Linux系统上尝试此操作,则会替换他的所有提交。但是在典型的情况下,如果您的错误电子邮件是唯一的,那么您将只替换最后几个您出错的提交。

(注:如果在您的问题中,您确切地显示了您正在采取的步骤和确切的结果,这可能会有所帮助。例如,如果git pushnon-fast-forward失败,我们将了解更多的问题。)


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

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

确认您已正确设置了git用户名:

江户十一〔一〕号

我的名字