结论
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 到远程仓库