了解git中的用户详细信息

时间:2017-07-27 09:02:48

标签: git github version-control

我刚刚在Github上创建了一个全新的存储库。我的Github用户名是foo。但是,在添加文件,提交和运行git remote add origin ____git push -u origin master命令后,系统会提示我输入我的Github凭据。我进入它们并且推送顺利进行,除非我在Github上查看存储库时,提交来自一个不称为foo的人。我猜它会从其他地方提取用户名,但它肯定与我的Github帐户无关。

我的问题不是如何解决这个问题,而是更多的原因。为什么提交者的名称独立于提供凭据的Github用户的名称?如果,当我被要求提供我的Github凭据时,我输入用户名foo,如果提交不属于foo的名称有什么意义呢?

2 个答案:

答案 0 :(得分:3)

这里有两个“用户”:

  1. 您提交的用户名和电子邮件地址
  2. 您用于远程的身份验证数据,在本例中为GitHub
  3. 这些是完全独立的,可能完全不同。

    指定第一个,即。您将提交的姓名和电子邮件地址:

    1. 发出git config命令来设置这些值
    2. 或直接编辑.gitconfig文件
    3. .gitconfig文件位于您的主目录中,在大多数与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 = donald@gmail.com
      

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

      正如您所述,github的身份验证数据是在您尝试推送时提示的。如果您需要更新它们,确切地存储它们取决于您的操作系统和/或“凭证助手”,其中有几个可供选择。

答案 1 :(得分:2)

Git从user.nameuser.email配置设置中获取您的用户名和电子邮件。在本地创建新提交时使用这些设置。您可以使用以下方式设置:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

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

  1. 存储库目录中的.git/config文件。
  2. 主目录中的.gitconfig文件。
  3. 您可以使用以下命令查看设置:

    git config --show-origin user.email
    

    --show-origin开关显示设置实际来自的位置。