git下code和上code使用HTTPS与SSH的区别

一、使用ssh方式

步骤1:检查你的电脑上是否已经生成了SSH Key

在git bash下执行如下命令

$ cd ~/.ssh
bash: cd: /c/Users/jw/.ssh: No such file or directory
ls

这两个命令就是检查是否已经存在id_rsa.pub或id_dsa.pub文件,如果文件已经存在,那么你可以跳过步骤2,直接进入步骤3。

步骤2:创建一个SSH Key

在git bash下执行如下命令

$ ssh-keygen -t rsa -C "814862021@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/jw/.ssh/id_rsa):

代码参数含义:
-t指定密钥类型,默认是rsa,可以省略。
-C设置注释文字,比如邮箱。
-f指定密钥文件存储文件名。
以上命令省略了-f参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的SSH key代码,如:

Generating public/private rsa key pair. 
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter] 

当然,你也可以不输入文件名,使用默认文件名(推荐),那么就会生成id_rsaid_rsa.pub两个秘钥文件。

接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到Git服务器上了

在这里插入图片描述

步骤3:添加SSH Key到Git服务器

查看我们的key:

~/.ssh$ ls
id_rsa  id_rsa.pub 
~/.ssh$ cat id_rsa.pub
# 把打印出来的内容全部拷贝

接下来我们登陆到GitHub上,右上角小头像->Setting->SSH and GPG keys中,点击new SSH key。

Title:可以随便填写,但最好起的名字能让自己知道这个公钥是哪个设备的。
Key:将上面生成的.pub文件中的所有内容复制到这里。
点击下面的Add SSH key即可。

然后你就会发现可以免密码访问了

二、实现两地操作

git clone :从远程仓库拷贝code到本地

clone会在当前目录下创建 [仓库名] 目录,然后把.git和其他所有文件拷到该目录下

jw@PC MINGW64 /f
$ git clone git@github.com:Jan0510/GRBL1.1_learning.git
Cloning into 'GRBL1.1_learning'...
The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.
remote: Enumerating objects: 417, done.
remote: Counting objects: 100% (417/417), done.
remote: Compressing objects: 100% (244/244), done.
remote: Total 417 (delta 185), reused 394 (delta 165), pack-reused 0
Receiving objects: 100% (417/417), 17.84 MiB | 1.16 MiB/s, done.
Resolving deltas: 100% (185/185), done.

clone到本地之后,再用 ls 命令就可以找到 GRBL1.1_learning 目录

git push 和 git pull:上传分支和更新分支

假设我存在2个仓库,1个在delete/de/目录下,1个在delete/目录下。
先修改delete/de/目录下的,然后push到远程master分支。

Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/delete/de/aaaaaaaaaaa (master)
$ git push -u origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 271 bytes | 90.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:Jan0510/aaaaaaaaaaa.git
   bd03ce1..376ed02  master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

然后从远程的master分支更新到delete/目录下的[当前分支],这样就实现了我在实验室修改后,回到宿舍还能继续修改。

Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/delete/aaaaaaaaaaa (test)
$ git pull origin master
From github.com:Jan0510/aaaaaaaaaaa
 * branch            master     -> FETCH_HEAD
Merge made by the 'recursive' strategy.
 a.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt

二、使用HTTPS方式

git remote add origin https://github.com/Jan0510/aaaaaaaaaa.git
git push -u origin main

在这里插入图片描述

HTTPS优缺点
优点1: 相比 SSH 协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不必须在使用 Git 之前先在本地生成 SSH 密钥对再把公钥上传到服务器。 对非资深的使用者,或者系统上缺少 SSH 相关程序的使用者,HTTP 协议的可用性是主要的优势。 与 SSH 协议类似,HTTP 协议也非常快和高效

优点2: 企业防火墙一般会打开 80 和 443 这两个常见的http和https协议的端口,使用http和https的协议在架设了防火墙的企业里面就可以绕过安全限制正常使用git,非常方便

缺点: 使用http/https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令. 但是现在操作系统或者其他git工具都提供了 keychain 的功能,可以把你的账户密码记录在系统里,例如OSX 的 Keychain 或者 Windows 的凭证管理器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值