【问题标题】:Git push keeps writing commit with wrong usernameGit push 不断用错误的用户名写入提交
【发布时间】:2019-07-05 22:35:27
【问题描述】:

我在共享机器上创建了一个新项目,我的存储库中的提交在 Git 上使用了错误的用户名。我已经更改了 Windows 凭据管理器中的凭据,我关注了 this guide 但作者没有更改,即使我推送它时询问我推送的用户名和密码,然后我插入我的。尽管如此,在存储库上,提交的作者不是我。我也试过this solution,但还是不行。

我还能尝试什么?

更新

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

然后它会询问电子邮件和密码。我插入我的,它正确推送,然后我去存储库看到这个:

在 git log 之后我看到了这个:

这一切都混在一起了。

在存储库中名称不正确。

【问题讨论】:

  • This 可能有用
  • @clmno git change-commits 不被识别为命令
  • 你可以在命令行中使用 git 吗?如果您使用的是 Windows,我认为您需要安装 git bash
  • 我在命令行使用 git

标签: git github repository git-commit


【解决方案1】:

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

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

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

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

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

然后你可以告诉你的 Git:扔掉那些讨厌的旧提交,改用我改进的新提交。你将不再看到旧提交,而只会看到新提交。如果您仔细观察,您会发现新的具有新的哈希 ID,即使关于它们的所有 else 都是相同的。

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

(注意:如果您在问题中准确显示您正在采取的步骤以及准确结果,这可能会有所帮助。例如,如果git push non-fast-forward 失败了,我们会知道更多关于出了什么问题。)

【讨论】:

  • 嗨,我之前已经通过运行脚本尝试过这个解决方案,但它也不起作用。
  • 当你在本地使用git show时,你看到了什么作者/提交者信息?你看到了什么哈希 ID?在git push 之后你看到了什么哈希ID?就此而言,您如何查看其他非本地 Git 存储库中的提交?
  • 在 git show 之后作者显示为“MyNewName ”,所以它是两者的混合。在哪里可以看到 hasID?
  • git showgit log 在整个事情的前面打印哈希 ID。如果您看到的名称正确但电子邮件地址错误,则说明 GIT_AUTHOR_EMAIL 和/或 GIT_COMMITTER_EMAIL 的拼写有问题。
  • GitHub 上的过滤器分支配方和链接的问题都通过电子邮件地址工作。我不确定哪一个在这里被认为是“错误的”,但您会选择那个作为与复制和替换过程匹配的提交。完成复制和替换后,本地的git log 应该显示正确的名称和电子邮件,以及新的/不同的提交哈希 ID。然后,您必须执行 git push --force 操作以将它们发送到 GitHub。请注意,GitHub 的作者统计信息会延迟更新,因此有些内容可能暂时不会显示。
猜你喜欢
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 2016-01-04
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
相关资源
最近更新 更多