【问题标题】:How is the git name determined when committing and pushing提交和推送时git名称如何确定
【发布时间】:2013-07-01 19:21:21
【问题描述】:

我在 git 中提交并推送,在推送期间 git 询问我的用户和密码。现在,在 github 上,我的 computer account 用户名出现了。为什么?

具体来说,git config --system -l 返回“找不到文件”。 git config --global -l 没有用户条目。 git config --local -l 没有用户条目。为什么推送时我提供的用户名没有使用?

【问题讨论】:

  • 请注意,在推送时,您的用户名和密码不是由“git”询问,而是由 ssh(或任何用于授予您访问存储库文件的权限)询问。一旦你可以访问这些文件,git 会忽略你输入的信息来访问这些文件。
  • 啊!好的,这就解释了。基本上,信息不会传递给 git。我从来没有想过。如果你把它作为一个答案,我会接受它。

标签: git push commit


【解决方案1】:

Git 使用 user.name 作为您的标识符 - 如果未设置,则默认为您计算机的用户名。

您应该按照说明here 来解决此问题。

简短总结:

git config --global user.name "Billy Everyteen"
#Next command prints out to verify
git config --global user.name

【讨论】:

  • 感谢您的回答!它肯定有助于避免我没有配置 git 用户的错误(尽管我自己不愿意使用 --global,因为我有几个并行的 git 用户)。但评论者 Boris 直截了当地解释说,授予过程(例如 ssh)与实际推送无关。
  • @fruity 是的,SSH 仅用作访问.git 目录的一种方式。 Git 始终基于文件理念——忽略 SVN 服务器等支持文件的约定,文件几乎可以通过任何文件请求系统进行处理,最常见的是 HTTP 和 SSH,它们都允许身份验证。
【解决方案2】:

当你使用 git 推送时,会发生两件事:

  1. 首先,您需要获得对要推送到的存储库文件的写入权限。通常,这意味着 ssh(不是 git)要求您提供远程用户名和密码。

  2. 然后,一旦授予写访问权限,git就可以执行推送操作。它使用您在当前机器上使用git config --global user.name "My Name" 设置的本地用户名。 Git 会忽略上一步使用的用户名和密码。

【讨论】:

    猜你喜欢
    • 2016-01-05
    • 2011-04-14
    • 1970-01-01
    • 2016-07-06
    • 2013-02-13
    • 1970-01-01
    • 2021-05-31
    • 2013-12-17
    • 2012-05-01
    相关资源
    最近更新 更多