Git是分布式的代码管理工具,它的代码管理是基于SSH
和HTTPS
的。
在clone项目时,我们通常使用HTTPS url
或SSH url
克隆到本地。
这两种方式的主要区别在于:
使用
HTTPS url
克隆对初学者来说会比较方便,复制HTTPS url
到git Bash里然后用clone命令克隆到本地就好了,但是每次fetch
和push
代码时,都需要输入账号和密码,这也是HTTPS
方式的麻烦之处。
使用
SSH url
克隆却需要在克隆之前先配置和添加好SSH key
。因此,如果你想要使用SSH url
克隆的话,你必须是这个项目的拥有者。否则你是无法添加SSH key
,另外SSH
默认是每次fetch
和push
代码都不需要输入账号和密码,所谓先苦后甜嘛。
下面有一个错误的例子:
如果是git仓库的拥有者,使用SSH url
克隆后,未添加SSH就直接把本地代码同步到远程仓库,会报以下错误:
$ git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
以上错误的原因是SSH key不存在或者SSH key未被添加到Github上,因此权限被拒绝了。
接下我们开始为Git配置SSH key:
1.判断SSH key是否存在:
cd ~/.ssh
如果没有密钥则不会进入此文件夹。
2.生成SSH key:
$ ssh-keygen -t rsa -C "email地址"
// 按3次回车,密码为空。(你也可以设置密码)
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
默认会在.ssh文件夹下生成两个名为 id_rsa
和 id_rsa.pub
的文件:
一般路径是:C:\Users\Administrator\.ssh
最后在github上添加SSH key,这里要添加的是 id_rsa.pub
里的公钥。