美文网首页
git 深入理解 user 信息

git 深入理解 user 信息

作者: HoPGoldy | 来源:发表于2019-09-26 11:17 被阅读0次

    相信大多数人在刚开始使用 git 的时候,都使用过下面的命令来配置自己的 user 信息:

    git config --global user.name xxx
    git config --global user.email xxx
    

    在配置完了之后,一个问题也随之产生,为什么我只用填这俩,而不需要填写登录密码呢?其实,在这里设置的信息并不是你访问 git 仓库时需要的登录信息,而是你的 提交者 身份。

    为什么不需要填写登录密码?

    我们先把所谓的提交者身份放一下,先来把这个密码问题解决了。实际上,你在使用git config之前已经完成密码的配置了。

    没错就是ssh登录,首先使用ssh-keygen生成密匙,再将公钥上传至 github,之后就可以通过 ssh 访问 github 了。这个过程其实就是所谓的“登录”。当你使用 ssh 连接后,每次远程操作都会自动验证你本地的私钥和 github 上的公钥是否匹配,从而完成了身份验证。

    既然已经有了身份验证了,那么自然就不需要再输入密码了,接下来我们了解下user.nameuser.email究竟是代表了什么,也就是所谓的提交者身份。

    提交者身份

    通过git config指定的name.nameuser.email就代表了提交者(你)的身份。

    很多人都认为,使用git config配置提交者身份就是为了指定自己要登录哪个 github 账户,这个观念其实是错误的。或者更直白一点,在本地机器上甚至没有“登录某个账户”的说法。提交者身份和 github 并不是一对一的关系,为什么呢?因为一个大家都听说过的概念:git 是版本控制工具,github 是基于 git 的代码托管服务

    git 是服务于 提交者 的,而 github 是服务于 github用户 ,两者是多对多关系,如下:

    • 本地可以在多个 github 账户中上传公钥来绑定 github 用户

    • github 账户中可以在设置里配置多个 email 来绑定本地提交者

    这么说可能有点懵,用一句话解释就是:本地的git并不关心你是哪个github或其他代码托管平台的用户。github也不关心你的提交者身份。

    github 总览中提交代码不显示小绿点

    详细很多人都遇到过这个问题,其实这个问题就是提交者和 github 账号的绑定关系没有处理好导致的。我们先来看一下 github 在收到你的提交请求之后都做了那些统计工作:

    你可以打开你 github 设置中的 email 选项卡,里面默认会有你注册时填写的邮箱,只要这个邮箱和你提交代码时设置的user.email一致,github 就会认为这次提交时所属于本账户的,就会显示小绿点。

    而如果你填的user信息不一致甚至不填信息。对于 github 来说关系不大,站在 github 的角度来说,只要你的ssh验证成功了,那你就可以向我账户里提交代码,只不过我不认为你是我账户所属的提交者罢了 (不显示小绿点 )。

    总结

    本文就本地 git 配置的user信息作出了一些分析,并对于user信息和github账户直接的关系作出了解释,自己的一点拙见,如果有不同的看法欢迎留言讨论。

    相关文章

      网友评论

          本文标题:git 深入理解 user 信息

          本文链接:https://www.haomeiwen.com/subject/uzefectx.html