当我在计算机上从Git Bash提交文件并将其推送到GitHub时,我不被认为是提交的作者:
当指向问号时,显示的信息如下:
无法识别的作者。如果是您,请确保您用于提交的电子邮件地址与您的帐户相关联。您可以在“设置”中为您的帐户添加电子邮件。
问题是我多次检查过,我可以向您保证两个电子邮件地址对应。
git config --global user.email
显示Email settings of GitHub中给出的完全相同的电子邮件地址。
我使用Windows 7,然后使用SSH连接到远程存储库。
答案 0 :(得分:25)
为将来的提交设置正确的名称和电子邮件:
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
如果您希望修复以前的未经提交的提交,请按照Github documentation:
执行git show
并记住使用过的电子邮件:
$ git show
commit ca44c93b9433346f858676a8f1b83f3d9757ec65
Author: John Doe <johndoe@johndoes-MacBook-Pro.local>
创建存储库的裸克隆:
git clone --bare https://github.com/user/repo.git
将OLD_EMAIL
,CORRECT_NAME
和CORRECT_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
强行推送到Github:
git push --force --tags origin 'refs/heads/*'
答案 1 :(得分:10)
使用git show
或git show <commit-SHA>
检查您提交的作者电子邮件是否正确。如果没有,请使用git config user.email "<your-email>"
,因为您可能已更改该特定仓库的设置,尽管您的全局配置。
答案 2 :(得分:0)
好的,我找到了解决方案。
基本上,git config --global user.email
包含良好的电子邮件地址,但git config user.email
没有。
所以我只需要修改本地的一个就可以了。但仍然不知道为什么。