在使用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:表示提供一个用于识别这个密钥的注释,一般填写邮箱地址,但也可以填入其他内容
总结
-
Git配置邮箱和用户名的目的
作为一个分布式版本控制系统,远程仓库为了跟踪是谁提交的代码,需要提交这提供身份信息:邮箱和用户名。当然,由于这里的用户名和邮箱完全由提交者设置,所以可能会出现提交者随意填写的情况发生。不过,当这种情况发生时,可以通过一些机制查询出真正的提交者。
-
Git配置的邮箱和用户名和GitHub有什么关系
- 账号密码和公钥私钥对只做权限的认证,即判断当前用户或机器是否可以向GitHub中的仓库推送代码。但是这两种认证方式不会记录是由谁把代码推送到GitHub中的,所以使用Git在本地配置的邮箱和用户名作为标记用于记录是谁做的推送操作。即:
- 账号密码和公钥私钥对用于认证,即打开GitHub的大门
- Git配置的邮箱和用户名用于记录是谁向GitHub推送的代码,即记录下是谁在GitHub中做的操作
- 账号密码和公钥私钥对只做权限的认证,即判断当前用户或机器是否可以向GitHub中的仓库推送代码。但是这两种认证方式不会记录是由谁把代码推送到GitHub中的,所以使用Git在本地配置的邮箱和用户名作为标记用于记录是谁做的推送操作。即:
-
Git和GitHub可不可以配置不同的邮箱和用户名文章来源:https://www.toymoban.com/news/detail-720833.html
可以,但最好还是配置相同的邮箱和用户名。正如上面所说,只有这样,GitHub中才能正确的记录你的操作。另外:文章来源地址https://www.toymoban.com/news/detail-720833.html
- 如果Git配置的邮箱是GitHub中存在的邮箱,则commits里显示的是这个邮箱对应的账号
- 如果Git配置的邮箱是一个在GitHub里不存在的邮箱,则commits里显示的是Git配置的用户名
到了这里,关于对使用Git、GitHub时邮箱和用户名的理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!