Git作者未知

时间:2011-11-27 05:55:13

标签: git github

我所有提交中的作者姓名都是 unknown https://github.com/freeenergy/Teacher-Login-Validation-Module

做了这个

$ git config --global user.name "Firstname Lastname"Sets the name of the user for all git instances on the system
$ git config --global user.email "your_email@youremail.com"

但仍然是作者/提交者名称显示[未知]

不知道我在做什么我尝试设置$ GIT_AUTHOR_NAME =“我的名字”并且它将我的名字改为我的用户名[freeenergy](IE我的问题已修复。)但当我切换回我的另一台计算机时是一样的。

我的配置文件现在看起来像这样,但仍然作为[未知]

提交
[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[remote "origin"]
    url = git@github.com:freeenergy/my-project.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[user]
    name = my name
    email = myEmail.com

7 个答案:

答案 0 :(得分:48)

甚至比运行git config更好,您可以直接编辑~/.gitconfig文件。查看并查看[user]是否有相关信息的部分。例如,我的~/.gitconfig有这个......

[user]
    name = Bob Gilmore
    email = me@mydomain.com

[user]前面没有空格,名称和电子邮件标签前面有单个标签页)

如果没有正确设置,请继续手动编辑.gitconfig文件。

答案 1 :(得分:24)

我遇到的问题是Github没有正确地将我的提交链接到我的帐户。如果您认为自己的电子邮件是正确的,则应根据this help page确保您帐户的Github设置中的电子邮件 。缓存的最后一部分也值得注意。

如果发生Github宕机或不再存在的灾难性事件,则复制。

为什么我的提交链接到了错误的用户?

GitHub使用保存在提交标题中的电子邮件将提交链接到GitHub用户。如果您发现您的提交被指责给其他用户,或者根本没有链接到用户,则应检查您的设置。

很高兴知道:承诺责任不授予对回购的访问权限。如果你看到对你不认识的用户的责任,请不要担心。用户无权访问您的仓库,除非您已明确将其作为该仓库的协作者或有权访问该仓库的团队添加。

使它们匹配

为了让GitHub正确地责备您的提交,请确保您的git电子邮件设置正确并且与您帐户中附带的电子邮件相匹配。

配置git

要检查您的git设置,请运行以下命令:

$ git config user.email
# you@there.com

如果此电子邮件不正确,您可以更改全局设置:

$ git config --global user.email "me@here.com"

很高兴知道:如果您在多台计算机上工作,则需要在每台计算机上检查此设置。

将电子邮件附加到您的GitHub帐户

如果您的电子邮件未附加到您的GitHub帐户,则需要添加该电子邮件,以便将来的提交正确指责。

  1. 转到您的帐户设置
  2. 点击“电子邮件”
  3. 点击“添加其他电子邮件地址”
  4. 输入电子邮件地址,然后点击“添加”
  5. 过去是历史

    如果您使用了无效的电子邮件或已附加到其他帐户的电子邮件,那么之前的提交将不会被正确指责。虽然git允许你修改repo的历史并更正它,但强烈建议不要更改你推送到远程仓库的提交。

    如果您之前的提交使用了正确的电子邮件,则在您将电子邮件添加到帐户后,他们就会开始链接。但是,在发生这种情况之前,旧数据可能需要一些时间才能从服务器的缓存中掉出来。

    继续前进,如果您的设置匹配,那么您的所有新提交都将归咎于您并链接到您的帐户。

答案 2 :(得分:9)

我不得不更改存储库配置文件。 从存储库路径运行:

> git config --local -e 

并添加整个部分:

[user]
    name = Anna Kowalska
    email = anna.kowalska@wp.pl

答案 3 :(得分:1)

如果您已经使用错误的用户推送了提交,则可以使用此script from github重写历史记录:

#!/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 :(得分:0)

我刚刚发现我最近的推送来自作者“未知”。

我刚才所做的是用git reset --mixed HEAD~1addcommitpush -f重置上一次提交。 GitKraken的Push总是搞砸了,但是git-bash做得很好。我的建议是在使用git-bash进行推送之前始终检查作者。

答案 5 :(得分:0)

以这种方式运行命令行。

git init
git config user.name "someone"
git config user.email "someone@someplace.com"
git add *
git commit -m "some init msg"

当我遇到同样的问题时,它对我来说非常好

答案 6 :(得分:0)

这对我有用:

git init
git add .
git config user.name "your github username"
git config user.email "your github email-id"
git commit -m "Any message"