区别
当remote URL为https格式时,每次git clone
git fetch
git pull
git push
都需要输入GitHub的用户名和密码,不过可以clone任何组织的仓库;
使用ssh时,则不需要验证用户名和密码,如果在配置ssh key时设置了密码,则需要验证密码。不过你不能下载使用SAML single sign-on的组织的仓库,只能用https。
将HTTPS修改为SSH
如果你钟爱ssh,那么可以将https改为ssh
进入一个仓库,运行如下命令,查看remote URL:
git remote -v

如上图则是使用了https格式,现在我们改为ssh格式
先删除https格式的origin
git remote rm origin
到github上复制这个仓库的ssh格式的remote URL

运行如下命令添加ssh格式的origin
git remote add origin git@github.com:TravisWongX/test.git
再用git remote -v
查看

可以看到origin已经变成ssh格式了
下面我们对库做一些改动然后push

提示报错,是因为没有ssh key
运行如下命令,检查是否存在ssh key
ls ~/.ssh/id_rsa.pub
运行如下命令可以删除已存在的key
rm -rf ~/.ssh/*
*
代表当前目录下所有文件
或者只需删除.ssh文件夹下的id_rsa和id_rsa.pub文件,known_hosts依情况而定
rm -f ~/.ssh/id_rsa
rm -f ~/.ssh/id_rsa.pub
添加ssh key
打开github,点击右上角头像,Settings,SSH and GPG keys

点击蓝色小字"generating SSH keys"可跳转至SSH key教程
运行如下命令,并且连续按三次回车键生成ssh key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
邮箱不需要与GitHub注册邮箱一致
运行如下命令查看key
cat ~/.ssh/id_rsa.pub
复制输出的内容,点击github上的New SSH key,粘贴并保存

运行如下命令,输入yes,出现Hi + 你的名字就是成功了
ssh -T git@github.com
到这里我们就可以愉快的使用git操作了。
Tips
- 一台电脑只需要一个 SSH key
- 一个 SSH key 可以访问你的所有仓库
- 如果你新买了一台电脑,就新增一个 SSH key
网友评论