【问题标题】:My commits on GitHub are not from "my" user我在 GitHub 上的提交不是来自“我的”用户
【发布时间】:2018-01-08 17:06:36
【问题描述】:

几周以来,我在 GitHub 上的提交都列在作者 muheim 下,而不是 jmuheim 下。我不知道这是怎么改变的,我想把它改回jmuheim,但我不知道如何跟踪。

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

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

那么git push 为什么以及如何使用muheim 用户?如果我不能解决这个问题,我会尝试删除muheim 用户(这是我几年前使用的旧用户),但我希望有人可以帮助我追踪这个问题。

【问题讨论】:

  • 当你执行“git config --global user.name”(或检查你的 .gitconfig 文件)时它会说什么?
  • 这可能与电子邮件有关。我猜您正在使用与您的旧帐户关联的电子邮件。
  • @pmmaga:非常感谢,这就是问题所在!我从muheim 删除了电子邮件并将其附加到jmuheim,现在所有提交似乎都自动重新连接到jmuheim!这是正常的吗?这对我来说感觉很奇怪......
  • 您选择了正确的答案:我已对其进行了编辑以解释为什么移动电子邮件地址就足够了。

标签: git github ssh


【解决方案1】:

您可以在您的计算机上设置您的全局用户名和用户电子邮件:

git config --global user.name jmuheim
git config --global user.email jmuheim@example.com

如果您想更改以前的提交,它会变得有点复杂。请注意,更改作者信息将无法将拉取请求或分叉与以前的作者信息合并,因为 git 会告诉您它们是完全不同的。无论如何,GitHub 在更改它以搜索“错误”名称后,请提供一个 tutorial for changing the email,它应该如下所示:

  1. 为您的存储库创建一个全新的裸克隆:

    git clone --bare https://github.com/user/repo.git
    cd repo.git
    
  2. 运行此脚本,它将更改从 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
    
  3. 推送到 GitHub

    git push --force --tags origin 'refs/heads/*'
    

我建议删除旧的克隆并继续使用新的git clone

您可以通过以下方式检查您在整个 repo 中使用的用户名:

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

【讨论】:

  • 感谢您的努力。据我所知,将电子邮件地址从一个 GitHub 用户转移到另一个用户解决了我的问题。
  • 当您运行git log --all --full-history --pretty=format:"%ae - %ce - %an :%cn" 时,您的所有旧提交是否都连接到您的“新”地址? (你想改变它吗?可能我误会了你;))
【解决方案2】:

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

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

还有你can replace your user name/email for old commits.
(虽然这会改写 repo 的历史:如果你是唯一一个使用它的人,这并不重要)

还要检查您的 git remote -v 值:如果这是一个 https URL,则无论如何都不会使用您的 id_rsa.pub 公共 SSH 密钥。

但是:如果您的提交被推送到右侧 new-user/repo,那么是的,只需更改 user.email 就足以将 提交附加到正确的用户。
您可以全局更改它,或者,如果您管理多个用户,则仅针对该存储库:

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

在“Why are my commits linked to the wrong user?”查看更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2023-03-04
    • 1970-01-01
    • 2021-01-25
    • 2013-11-13
    • 2021-12-29
    • 2021-06-11
    相关资源
    最近更新 更多