刚换电脑重头配置git,写篇文章纪念一下。
一、前言
Git共有三个级别的config文件,分别是system、global和local。global的在$home\.gitconfig,local的在仓库目录下的.git\config。这三个级别都分别配置了用户信息,当git commit时,会依次从local、global、system里读取用户信息。
https和ssh的区别:
1、前者可以任意克隆github上面的项目,不管是谁的;而后者必须是你要克隆项目的所有者或者管理员,且需要先添加SSH Key,否则无法克隆。
2、https url在push的时候是需要验证用户名和密码的;ssh在push的时候,是不需要输入用户名和密码的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则是不需要输入密码的。
配置git的ssh需要提交需要的以下步骤
1、设置Git的user.name和user.eamil
2、生成ssh
3、配置git的ssh key
二、单个用户配置步骤
1.设置Git的user name和eamil
git config --global user.name "Deamer"
git config --global user.email "22369xxxx@qq.com"
查看用户信息命令:
git config user.name
git config user.email
2、生成ssh
ssh-keygen -t rsa -C "22369xxxx@qq.com"
代码参数的含义:
-t:执行密钥类型,默认是rsa,可以省略
-C:设置注释文字,比如邮箱
-f:指定密钥文件存储文件名
以上代码省略了-f参数,因此运行上面那条命令之后会让你输入一个文件名,用户保存刚才生成的SSH key代码,如:
Generating public/private rsa key pair.
# Enter file in which to save the key (/c/Users/Deamer/.ssh/id_rsa): [Press enter]
当然也可以根据需要输入名字,使用默认文件名就会生成id_rsa和id_rsa.pub两个密钥文件。
接着又会提示输入两次密码(该密码是你push文件的时候输入的密码,而不是github管理者的密码),不输入密码直接回车,那么push的时候就不想要输入密码了,直接提交到github上了。
操作的结果截图如下:

此时在C:\Users\你的用户名\.ssh下可以看到生成的两个文件

3、配置gitee和github的ssh key
(1)给gitee添加ssh key:
登录gitee,点击头像选择设置

然后选择左侧的菜单SSH公钥,标题可以随便填写,公钥便是将上一步生成的id_rsa.pub文件的内容全部复制到这里。

(2)给github添加ssh key:
登录github之后点击头像,选择settings

选择左侧的SSH and GPG keys,点击右上角的New SSH key按钮

添加公钥:将上一步生成的id_rsa.pub文件的内容全部复制到这里。

4、总结
一个密钥可以供多个仓库使用的。
三、git配置多个用户
说明:还是在上面的操作的基础上进行,为了说明git配置多个用户可以使用的准确性,这里我将之前给gitee添加的公钥删除掉
1、生成ssh
ssh-keygen -t rsa -C "22369xxxx@qq.com"
输入之后,还是和之前的步骤一样,之后的操作直接回车。

执行之后发现此目录下多生成了两个文件

2、配置文件config
在C:\Users\你的用户名\.ssh的目录下,创建一个配置文件config

添加内容如下:
#gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
#github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
3、配置gitee的SSH Key
将gitee_id_rsa.pub中的内容和之前的操作一样直接复制到gitee的指定位置,添加SSH Key即可。
再添加公司的公钥等等,你想用哪种方法就用哪种~~~
本文详细介绍了Git的三种配置级别(system、global、local),并对比了https和ssh两种克隆方式的区别。通过具体步骤,演示了如何为不同平台(gitee、github)配置SSH Key,实现无密码提交代码。同时,提供了配置多个用户的解决方案,包括生成多个SSH Key和在.config文件中区分不同平台的配置。
5319

被折叠的 条评论
为什么被折叠?



