git - 我在 GitHub 上的提交不是来自 "my"用户

标签 git github ssh

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

我使用的是 macOS,我的密码保存在钥匙串(keychain)中。但是我在那里找不到任何帐户 muheim,只有 jmuheim

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

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

最佳答案

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

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

如果你想改变以前的提交,它会变得有点复杂。请注意,更改作者信息将无法将 pull 请求或 fork 与以前的作者信息 merge ,因为 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

你可以检查你在整个仓库中使用的用户名:

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

关于git - 我在 GitHub 上的提交不是来自 "my"用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48013468/

相关文章:

git - 将 git 移动到更高的文件夹?

java - 使用 MAMP、Tomcat、Java 进行本地开发

macos - Git 配置 - 仍然询问用户名和密码

user-interface - 通过 ssh 进行简单的基于 GUI 的 gdb 调试

hadoop - 通过 Chef 在ec2中设置ssh无密码

GIT:致命: 'master' 似乎不是 git 存储库

python - 无法运行原始 git filter-branch

git - 从 Git 历史记录中删除敏感文件及其提交

Git,如何使我的开发镜像/克隆我的主分支?

ssh-keygen 不生成 OPENSSH key ,而不是 RSA key