Git push keeps writing commit with wrong username
我在一台共享机器上创建了一个新项目,并且我的存储库中的提交在Git上使用了错误的用户名。我已经在Windows的凭据管理器中更改了凭据,我遵循了此指南,但作者没有更改,即使当我按下它时,它要求我输入用户名和密码并插入我的。不过,在存储库中,提交的作者不是我。我也尝试过这个解决方案,但仍然不起作用。
我还可以试试什么?
更新
步骤:-git commit -m"message"。-江户十一〔一〕号
然后它要求输入电子邮件和密码。我插入我的,它正确地推动,然后我进入存储库并看到:
。
在Git日志之后,我看到了:
氧化镁
一切都搞混了。
在存储库中,名称不正确。
- 这可能有用
- @clmno git change提交未被识别为命令
- 你能从命令行使用git吗?如果你在Windows上,我想你需要安装git bash。
- 我正在使用命令行中的git
您在一个错误的前提下工作,所以在您更改方法之前,您不能解决这个问题:git push将现有的提交从一个存储库转移到另一个存储库。传输过程使用您的凭证,即来自https://的管理者的凭证,或存储的用于ssh://的ssh凭证,但提交已被冻结:它们具有为其作者和提交者设置的任何名称,并且这些名称不能更改。
因此,您需要做出新的和不同的承诺。提交时,git在这里使用的名称和电子邮件地址不是您在任何凭证中设置的数据,也不是存储在任何ssh密钥中的数据。相反,这些只使用您的user.name和user.email设置。
如果您有自己喜欢的现有提交,则可以将它们复制到与原始提交几乎完全相同但略有不同的新提交和改进提交:
然后你可以告诉你的Git:扔掉那些讨厌的旧承诺,用我闪亮的新改进的代替。你将不再看到旧的承诺,只看到新的承诺。如果仔细观察,您会发现新的散列ID具有新的散列ID,即使它们的其他内容都是相同的。
要做到这一点,请看如何在Git中更改多个提交的作者和提交者名称以及电子邮件?。请注意,您应该小心地只复制使用错误名称和电子邮件地址设置所做的提交。链接问题上接受的答案会复制与某个特定电子邮件地址匹配的任何提交,因此,如果您错误地使用了(例如)Linus Torvalds的电子邮件地址,并在Linux系统上尝试此操作,则会替换他的所有提交。但是在典型的情况下,如果您的错误电子邮件是唯一的,那么您将只替换最后几个您出错的提交。
(注:如果在您的问题中,您确切地显示了您正在采取的步骤和确切的结果,这可能会有所帮助。例如,如果git push与non-fast-forward失败,我们将了解更多的问题。)
- 嗨,我之前通过运行脚本尝试过这个解决方案,但它也不起作用。
- 当您在本地使用git show时,您会看到哪些作者/提交者信息?你看到什么散列ID?在git push之后,您看到了什么散列ID?为此,您如何查看其他非本地Git存储库中的提交?
- 在Git Show之后,作者显示为"MyNewName",所以它是两者的混合。我在哪里能看到哈西德?
- git show和git log在整件事情的前面打印散列ID。如果您看到的是正确的名称,但电子邮件地址错误,那么GIT_AUTHOR_EMAIL和/或GIT_COMMITTER_EMAIL的拼写有问题。
- 或者@mlondei没有用EDOCX1[6]链接配置新的电子邮件
- 我已经编辑了这个问题。@clmno我已经用那个命令配置了电子邮件。
- @我假设他使用的是Github脚本或类似的脚本。还要注意,git config --global user.email name@host不会覆盖意外错误的git config user.email name@host(本地)!
- 好的,快速诊断可能会有所帮助:新的提交将获得git config --get user.name和git config --get user.email所显示的任何内容,因此如果这些内容显示正确,您就可以开始新的提交了。我们只需要修复现有的提交(通过复制)。图中显示了现有提交有两个不同的电子邮件地址。还有一点值得怀疑的是,有四个提交显示在本地,但只有三个在Github上…
- GitHub和链接问题上的过滤分支配方都通过电子邮件地址工作。我不确定哪一个在这里被认为是"错误的",但您可以选择它作为提交来匹配复制和替换过程。完成复制和替换后,git log本地应显示正确的名称和电子邮件,并使用新的/不同的提交哈希ID。然后,您必须执行git push --force操作,将它们发送到github。请注意,Github的作者统计数据会在一段时间内更新,因此有些事情可能暂时不会出现。
设置一个新的git用户名,它将自动覆盖配置文件中的旧用户名:
git config --global user.name"My Name"。
确认您已正确设置了git用户名:
江户十一〔一〕号
我的名字
- 我已经尝试过了,它提示的名称是我插入的名称,但是当按下它要求我输入用户名和密码时,我插入了我的名称,然后转到存储库,提交仍然使用旧名称。
- @姆伦迪,你在说以前的承诺吗?你能修改你的问题来展示你所看到的和你所希望的吗?
- 不,我也在说新的承诺。每当我在解决方案之后尝试提交时,存储库中就会出现旧的用户名。