Git配置SSH key
相关:https://blog.csdn.net/hao495430759/article/details/80673568
(1)生成并部署SSH key
安装好Git客户端后,打开git bash,输入以下命令生成user1的SSH Key:
1 | ssh-keygen -t rsa -C "user1@email.com" |
在当前用户的.ssh目录下会生成id_rsa私钥文件和id_rsa.pub公钥文件,将id_rsa.pub中的内容添加至user1的github中。然后在git bash中输入以下命令测试该用户的SSH密钥是否生效:
1 | ssh -T git@github.com |
若连接成功则提示Hi user1! You’ve successfully authenticated, but GitHub does not provide shell access.
注:该命令仅限于文件名为id_rsa的密钥。
接着生成user2的密钥,注意不能再使用默认的文件名id_rsa,否则会覆盖之前密钥文件:
1 | ssh-keygen -t rsa -f ~/.ssh/id_rsa2 -C "user2@email.com" |
再将该用户的公钥文件添加至github中。
测试user2的ssh连接时需要指定密钥文件:
1 | ssh -T git@github.com -i ~/.ssh/id_rsa2 |
也可以使用ssh agent添加密钥后进行测试。因为系统默认只读取id_rsa,为了让ssh识别新的私钥,可以使用ssh-agent手动添加私钥:
1 | ssh-agent bash |
注:该方法仅限当前窗口有效,打开新的窗口则ssh连接失败。
(2)配置config文件
在.ssh目录下创建一个config文本文件,每个账号配置一个Host节点。主要配置项说明:
1 | Host 主机别名 |
配置文件内容
1 | # 配置user1 |
再通过终端测试SSH Key是否生效
1 | ssh -T git@u1.github.com |
(3)配置用户名和邮箱
如果之前配置过全局的用户名和邮箱,需要取消相关配置,再在各仓库下配置相应的用户名和邮箱。
1 | git config --global --unset user.name |
为各仓库单独配置用户名和邮箱
1 | git config user.name "user1" |
如果原先使用HTTPS通信,则需要修改远程仓库地址
1 | git remote rm origin |
操作命令
- 从远端合并代码到本地
1 | 1.配置上游地址(只需要一次) |
- 首次配置git时候测试连接
1 | ssh -T git@192.168.99.168 |
- 生成密钥
1 | git config –global user.name ‘username’ |
- 撤销上次commit
1 | # 注意,仅仅是撤回commit操作,写的代码仍然保留。 |
Git中文乱码
解决git status不能显示中文
现象
status查看有改动但未提交的文件时总只显示数字串,显示不出中文文件名,非常不方便。如下图:原因
在默认设置下,中文文件名在工作区状态输出,中文名不能正确显示,而是显示为八进制的字符编码。解决办法
将git 配置文件 core.quotepath项设置为false。 quotepath表示引用路径,加上–global表示全局配置
git bash 终端输入命令:
1 | git config --global core.quotepath false |
通过修改配置文件来解决中文乱码
1 | [gui] |