对使用Git、GitHub时邮箱和用户名的理解

在使用Git以及GitHub时会多次用到“邮箱”和“用户名”,这里记录一下它们的区别。

登录GitHub时

请添加图片描述

这里的用户名或邮箱是用于登录GitHub这个网站的。

配置Git时

git config --global user.name "用户名"
git config --global user.email "邮箱"

这两条命令是配置 Git 的全局用户名和邮箱,在进行版本控制时用于记录用户身份信息。Git在commit信息中会显示提交人及其邮箱地址,方便追踪提交记录。因此这里的邮箱和用户名是为了回溯是谁提交的代码,并不需要一定填写GitHub的用户名和邮箱,甚至是可以随便填写的用户名和邮箱(当然,极其不建议这样做)。

在使用GitHub时,可能会发现一个bug:虽然提交了commit,但是主页却不显示contributions。这个bug很可能就是在Git配置的邮箱地址与GitHub中的邮箱地址不符合造成的。

  • 如果本地设定的user.email值与GitHub上的账户的邮件地址相同,GitHub会认定推送代码的操作是账户拥有者自己做的,跟直接登录到GitHub,从网站上修改,是相同的。此时,修改人是一样,就是账户拥有者。
  • 如果本地设定的user.email值与GitHub不同,也能把代码推送到GitHub(只要密码或者ssh正确),GitHub会记录这次的修改是另一个人做的。

设置SSH Key时

GitHub通过HTTPS协议(密码)或者SSH验证身份。其中:

  • HTTPS协议只认账号。如果使用HTTPS操作远程仓库,则需要使用账号密码来做权限的认证。
  • SSH协议只认机器。当使用SSH操作远程仓库的话,需要使用公钥和私钥对来做权限的认证。

为了方便操作,一般都是使用SSH协议,当使用SSH协议时,需要在本地电脑上生成公钥和私钥对,然后在GitHub上配置公钥。公钥和私钥对使用如下指令生成:

ssh-keygen -t rsa -f id_rsa.github -C "XXX"

其中:

  • -t:指定密钥的类型,密钥的类型有RSA和DSA两种
  • rsa:指使用RSA算法
  • -f:指定存储密钥的文件名
  • -C:表示提供一个用于识别这个密钥的注释,一般填写邮箱地址,但也可以填入其他内容

总结

  1. Git配置邮箱和用户名的目的

    作为一个分布式版本控制系统,远程仓库为了跟踪是谁提交的代码,需要提交这提供身份信息:邮箱和用户名。当然,由于这里的用户名和邮箱完全由提交者设置,所以可能会出现提交者随意填写的情况发生。不过,当这种情况发生时,可以通过一些机制查询出真正的提交者。

  2. Git配置的邮箱和用户名和GitHub有什么关系

    • 账号密码和公钥私钥对只做权限的认证,即判断当前用户或机器是否可以向GitHub中的仓库推送代码。但是这两种认证方式不会记录是由谁把代码推送到GitHub中的,所以使用Git在本地配置的邮箱和用户名作为标记用于记录是谁做的推送操作。即:
      • 账号密码和公钥私钥对用于认证,即打开GitHub的大门
      • Git配置的邮箱和用户名用于记录是谁向GitHub推送的代码,即记录下是谁在GitHub中做的操作
  3. Git和GitHub可不可以配置不同的邮箱和用户名

    可以,但最好还是配置相同的邮箱和用户名。正如上面所说,只有这样,GitHub中才能正确的记录你的操作。另外:

    • 如果Git配置的邮箱是GitHub中存在的邮箱,则commits里显示的是这个邮箱对应的账号
    • 如果Git配置的邮箱是一个在GitHub里不存在的邮箱,则commits里显示的是Git配置的用户名
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值