2017-07-27 100 views
1

我刚刚在Github上创建了一个全新的存储库。我的Github用户名是foo。但是,在添加文件,提交并运行git remote add origin ____git push -u origin master命令后,系统会提示输入我的Github凭据。我输入它们并推送顺利,除了当我在Github上查看存储库时,提交来自未称为foo的人。我想这是从其他地方拉入用户名,但它与我的Github帐户无关。在git中了解用户详细信息

我的问题不是如何解决这个问题,但更多的为什么会这样。为什么提交者的名字与提供凭据的Github用户的名字无关?如果当我被要求提供Github证书时,我输入了用户名foo,那么对于提交不符合foo名称的意义如何?

回答

2

的Git得到你的用户名和电子邮件从user.nameuser.email配置设置。这些设置在本地创建新提交时使用。您可以设置这些:

git config --global user.name "Your Name" 
git config --global user.email "[email protected]" 

Git的设置可以存储在两个不同的位置,并在以下优先顺序使用:

  1. .git/config文件中的库目录。
  2. .gitconfig文件在您的主目录中。

你可以看到设置是什么,通过使用如下命令:

git config --show-origin user.email 

--show-origin交换机向您显示的设置实际上是来自哪里。

+0

谢谢,但是我的问题更多的是关于如何设置名称和电子邮件这样的技术原因。如果我输入Github凭证,那么Github应该知道我的姓名和电子邮件地址。我觉得很奇怪,我可以以除Github用户名以外的名义提交。 – clb

+1

@Cal:要记住的是Git独立于Github。当你在本地进行提交时,你完全不涉及Github(服务)。直到你推*你涉及到Github。但到那时为止,提交已经在本地完成了,并且在那一点上没有任何关于提交的内容可以改变。你的Github证书用于确定你是否被允许将你的(已经创建的)提交给Github。 –

3

有两个“用户”在这里打球:

  1. 您用于远程认证数据,在这种情况下GitHub的

提交的用户名和电子邮件地址这些是完全独立的,可以完全不同。

指定第一个,即。什么样的姓名和电子邮件地址,您将与提交,或者:

  1. 问题git config命令来设置这些值
  2. 或编辑.gitconfig文件直接

.gitconfig文件放置在你的home目录,其在大多数linux兼容的系统上将为~,或在Windows上为C:\Users\<your username>(或类似取决于您的安装)。

发出命令:

git config --global user.name "Your Name Here" 
git config --global user.email "Your email address here" 

编辑配置文件,在你喜欢的文本编辑器打开它,要么定位和变化,或添加以下内容:

[user] 
    name = Your Name Here 
    email = Your Email Address Here 

注意在这里没有检查,除了可能提示输入这些值(如果它们完全丢失),但可以指定任何内容,这意味着您可以轻松地进行以下操作:

[user] 
    name = Donald Duck 
    email = [email protected] 

注意!您还可以在本地为特定存储库指定/覆盖此文件,在这种情况下,.gitconfig文件存储在.git文件夹内,并且只命名为config,您可以发出与上述相同的命令进行更改,仅省略--global部分。


您的github验证数据正如您所述,当您尝试推送时,系统会提示您。具体存储这些内容的位置,以防需要更新它们取决于您的操作系统和/或“凭证助手”,其中有几个可供选择。

相关问题