无法识别的作者

时间:2013-09-01 19:00:58

标签: git github

当我在计算机上从Git Bash提交文件并将其推送到GitHub时,我不被认为是提交的作者:

Unrecognized author

当指向问号时,显示的信息如下:

  

无法识别的作者。如果是您,请确保您用于提交的电子邮件地址与您的帐户相关联。您可以在“设置”中为您的帐户添加电子邮件。

问题是我多次检查过,我可以向您保证两个电子邮件地址对应。

  

git config --global user.email

显示Email settings of GitHub中给出的完全相同的电子邮件地址。

我使用Windows 7,然后使用SSH连接到远程存储库。

3 个答案:

答案 0 :(得分:25)

为将来的提交设置正确的名称和电子邮件:

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

如果您希望修复以前的未经提交的提交,请按照Github documentation

  1. 执行git show并记住使用过的电子邮件:

    $ git show
    commit ca44c93b9433346f858676a8f1b83f3d9757ec65
    Author: John Doe <johndoe@johndoes-MacBook-Pro.local>
    
  2. 创建存储库的裸克隆:

    git clone --bare https://github.com/user/repo.git
    
  3. OLD_EMAILCORRECT_NAMECORRECT_EMAIL,然后cd替换到您的存储库并粘贴脚本。按enter键。

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="your-old-email@example.com"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_COMMITTER_NAME="$CORRECT_NAME"
        export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
        export GIT_AUTHOR_NAME="$CORRECT_NAME"
        export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags
    
  4. 强行推送到Github:

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

答案 1 :(得分:10)

使用git showgit show <commit-SHA>检查您提交的作者电子邮件是否正确。如果没有,请使用git config user.email "<your-email>",因为您可能已更改该特定仓库的设置,尽管您的全局配置。

答案 2 :(得分:0)

好的,我找到了解决方案。

基本上,git config --global user.email包含良好的电子邮件地址,但git config user.email没有。

所以我只需要修改本地的一个就可以了。但仍然不知道为什么。