我在GitHub上的提交不是来自;我的";用户

我在GitHub上的提交不是来自;我的";用户,git,github,ssh,Git,Github,Ssh,几周后,我在GitHub上的提交被列在authormuheim下,而不是jmuheim下。我不知道这是如何改变的,我想把它改回jmuheim,但我不知道如何跟踪它 我在macOS上,我的密码保存在钥匙链中。但是我在那里没有找到任何帐户muheim,只有jmuheim 我的系统上有一个id\u rsa.pub,我很确定它映射到GitHub上的jmuheim,但我并不是一个真正的SSH专家 那么,gitpush为什么以及如何使用muheim用户呢?如果我无法解决此问题,我将尝试删除muheim用户(

几周后,我在GitHub上的提交被列在author
muheim
下,而不是
jmuheim
下。我不知道这是如何改变的,我想把它改回
jmuheim
,但我不知道如何跟踪它

我在macOS上,我的密码保存在钥匙链中。但是我在那里没有找到任何帐户
muheim
,只有
jmuheim

我的系统上有一个
id\u rsa.pub
,我很确定它映射到GitHub上的
jmuheim
,但我并不是一个真正的SSH专家


那么,
gitpush
为什么以及如何使用
muheim
用户呢?如果我无法解决此问题,我将尝试删除
muheim
用户(这是我几年前使用的旧用户),但我希望有人能帮助我跟踪此问题。

身份验证与用于提交的
user.name
/
user.email
无关

检查您的
git config user.name
值:您可以将其更改回旧值

还有你。
(尽管这将改写回购协议的历史:如果你是唯一一个与之合作的人,这并不重要)

还要检查您的
git remote-v
值:如果这是一个https URL,您的id\u rsa.pub公钥无论如何都不会被使用

但是:如果您的提交被推到正确的
新用户/repo
,那么是的,只需更改
用户。电子邮件
就足以将新提交附加到正确的用户。
您可以全局更改,或者,如果您管理多个用户,则仅针对该回购:

 cd /path/to/repo
 git config user.email email-of-second-GitHub-account

有关详细信息,请参阅“”。

您可以通过以下方式在计算机上设置全局用户名和用户电子邮件:

git config --global user.name jmuheim
git config --global user.email jmuheim@example.com
如果您想更改以前的提交,它会变得更复杂一点。请注意,更改作者信息将使pull请求或fork无法与以前的作者信息合并,因为git会告诉您这些请求或fork完全不同。无论如何,GitHub在更改后提供了一个搜索“错误”名称的窗口,它应该如下所示:

  • 创建存储库的新的裸克隆:

    git clone --bare https://github.com/user/repo.git
    cd repo.git
    
  • 运行此脚本,它将在从muheim到jmuheim的所有分支的所有提交中更改您的提交者名称和作者名称

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_NAME="muheim"
    CORRECT_NAME="jmuheim"
    
    if [ "$GIT_AUTHOR_NAME" = "$OLD_NAME" ]
    then
        export GIT_COMMITTER_NAME="$CORRECT_NAME"
    fi
    if [ "$GIT_COMMITTER_NAME" = "$OLD_NAME" ]
    then
        export GIT_AUTHOR_NAME="$CORRECT_NAME"
    fi
    ' --tag-name-filter cat -- --branches --tags
    
  • 推送到GitHub

    git push --force --tags origin 'refs/heads/*'
    
  • 我建议删除旧的克隆并继续使用新的
    git克隆

    您可以通过以下方式检查整个回购协议中使用的用户名:

    git log --all --full-history --pretty=format:"%ae  -  %ce  -  %an :%cn"
    

    当您使用“git config-global user.name”(或检查您的.gitconfig文件)时,它会说些什么呢?不过可能是关于电子邮件的。我猜您正在使用与旧帐户关联的电子邮件。@pmmaga:非常感谢,这就是问题所在!我从
    muheim
    中删除了电子邮件并将其附加到
    jmuheim
    ,现在所有提交似乎都自动重新连接到
    jmuheim
    !这正常吗?这让我觉得很奇怪…你选择了正确的答案:我编辑了它来解释为什么移动电子邮件地址就足够了。谢谢你的努力。在我看来,将电子邮件地址从一个GitHub用户移动到另一个用户解决了我的问题。当您运行
    git log--all--full history--pretty=format:“%ae-%ce-%an:%cn”
    您所有的旧提交是否都连接到了“新”地址?(你到底想改变吗?可能是我误解了你;))