GitHub 的 HTTPS 和 SSH 的区别

结论

在这里插入图片描述
Github 上会发现有两种clone方式,那么他们有什么区别呢?
先抛结论:

HTTPS:拿到url就可以随便clone,但是在push的时候需要验证Github的用户名和密码;
SSH:Github 需要添加本机的 SSH key; 如果配置SSH key的时候设置了密码,在push的时候需要输入密码,否则直接push。

两种方式的 URL 对比:

git@        github.com:kanomku/java_basci_learn_and_practise.git
https://    github.com/kanomku/java_basci_learn_and_practise.git

两种方式的 操作对比:

https:

git clone https://github.com/xiaoming/java_practise.git
git add .
git commit -m "some comments" 
git push


ssh:

git init 
git remote add origin [email protected]:xiaoming/java_practise.git 
git clone https://github.com/xiaoming/java_practise.git
git pull 
git add .
git commit -m "some comments" 
git push -u origin master // (首次)
git push //(以后)

在这里插入图片描述

HTTPS 和 SSH 的学习过程

在这里插入图片描述
如上图,Github 上有https 和 SSH 两张clone方式,目前认知阶段只知道他们俩都可以clone,别的区别就不晓得了,下面开始实操体会一哈

两种方式的 URL 对比:

git@        github.com:kanomoku/java_basci_learn_and_practise.git
https://    github.com/kanomoku/java_basci_learn_and_practise.git

HTTPS

1. clone 文件

git clone https://github.com/kanomoku/java_basci_learn_and_practise.git

在这里插入图片描述在这里插入图片描述修改文件
在这里插入图片描述注意此时的操作路径,就是因为路径错了,所以导致了下面几个问题
在这里插入图片描述发现不识别命令,初始化一下,发现我们clone的没有被管理起来
在这里插入图片描述这回先初始化了的状态再clone,看一下;
把本地刚才clone的文件夹全部删除,重新clone
在这里插入图片描述发现只有初始化才会识别git 命令,但是显示刚才下载的还是没有被本地的Git管理起来;
在这里插入图片描述我想尝试去管理,出了警告,突然明白了,我觉得应该是我操作错路径了!!!

删除文件重新来
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述此时才是正常情况
在这里插入图片描述看一下此时状态
在这里插入图片描述

2. 提交更改 git add xxx, git commit -m “message”

在这里插入图片描述在这里插入图片描述

3. git push

在这里插入图片描述push 的话需要登陆
点了第一个选项
在这里插入图片描述在这里插入图片描述然后我的邮箱收到Github来的一条邮件;
在这里插入图片描述但是我发现Github并没有被更新
在这里插入图片描述可能是因为默认IE浏览器打不开,我复制了URL到火狐的原因?
再重新push一下
在这里插入图片描述
在这里插入图片描述

IE这回直接显示成功,然后Git也显示成功

在这里插入图片描述成功push到Github上;

SSH

1. clone 文件

在这里插入图片描述在这里插入图片描述

遇到一个错误已经消化了,但是发现代码没有pull下来;

在这里插入图片描述上面遇到的错误

The authenticity of host 'github.com (20.205.243.166)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
This key is not known by any other names

Google之后明白,少了一个known_hosts文件,本来密钥文件应该是三个,现在是两个,便报了这样的错误,此时选择yes回车之后,便可,同时生成了缺少了的known_hosts文件:

Are you sure you want to continue connecting (yes/no)? //输入yes,回车

在这里插入图片描述在这里插入图片描述本地没有clone 下来原因是 remote 以后直接 pull 并没 clone。
在这里插入图片描述成功clone!

在这里插入图片描述看了一下状态发现貌似上面出现过的路径的问题;
为了排除上面操作失误的影响,删除所有文件重新来一次
在这里插入图片描述我觉的就是路径的问题;
如果我不初始化直接remote 然后 clone 呢?
删除所有文件重新测试
在这里插入图片描述这里不识别git 命令,明白教程里为啥先 Init 初始化了,就是因为可以识别git命令,好进行下面的remote 和 clone的操作!!!!
但是最后操作文件还是要到下载的工程的路径下去git bash, 然后进行相关操作;
在这里插入图片描述
在这里插入图片描述和预想的一样,要到项目路径下去操作

2. 提交更改 git add xxx, git commit -m “message”

在这里插入图片描述在这里插入图片描述

3. git push -u origin master

在这里插入图片描述在这里插入图片描述
成功push 到远程仓库