github 终端克隆操作,以及对 https/ssh 的理解

前言

最近瞎搞 github 的一些配置,结果搞得有一段时间克隆不了仓库。不过经历了这次风波后,我对 github 的一些原理有了更清楚的了解。所以想稍微写一小篇文章总结输出一下,也欢迎有疑问的读者与博主进一步交流,我的理解还是有限的哈哈。

主要探讨关于 github 的基础克隆操作的一些配置理解。

克隆

从比较基础的东西讲起吧。克隆仓库是什么?当我们在 github 上看到感兴趣的项目/仓库 repositories 的时候,会想自己把代码扒下来用,或者自己加入这个项目也成为一名开发者(这个操作其实一般需要 fork 自己的一份仓库,涉及一些协作开发的内容吧,这篇文章里不会提到,主要还是讲解对简单的个人项目的一些操作)。这个把项目搞下来的操作就是克隆。

可能有同学会问,我直接点击 Download ZIP 下一个压缩包到本地岂不是最简洁明了方便的方法吗,这样不就行了吗。其实还是有一点区别的,Download ZIP 下载下来的只是其中的代码部分(当然如果只是想把当前的代码扒下来用而不涉及一些自己的修改提交,这样完全可以),而终端 git clone 操作搞下来的不只有 code,还有版本信息(比如我想切换到该仓库的不同分支,不同版本等),是一个"包含仓库配置信息"的代码仓库,使用管理也更为方便。

Github Desktop 是 Github 提供的一个图形化操作管理界面,我个人没太尝试过hh,和终端操作的 https/ssh 应该是一个效果。但是还是建议大家学习尝试一下 cmd 操作,毕竟比如对于一些服务器等场景,gui 页面并不是一定可以用的。

https 方式相当于:我在本地登录我的 github 账号密码,系统校验后判断我是否有这个权限去使用这个仓库,如果有则允许使用。

ssh 方式相当于:针对本主机配置的一种校验方式,使得在当前主机上不用每次都输入账号密码即可校验身份。具体实现方式如下,非对称加密算法 RSA:
是 否 本机生成公钥私钥 公钥交给远程主机 本机需要远程访问时给远程主机发送请求 远程主机随机生成一个字符串用公钥加密 发给本机 本机用私钥成功解密 发回给远程主机 远程主机判断字符串是否成功解密 确认本机身份 确认权限 允许后续操作 身份未知

具体操作方法

http 方式:

  1. 首先需要下载 git,下载后 windows 右键-git bash here 或者 linux cmd 中就可以使用 git 了。
  2. 复制想克隆仓库的地址:选择 https,点击这个键复制:
  3. 在终端窗口中输入:git clone 刚才复制的地址 。然后应该输入你的 github 账号密码信息以此校验身份。身份校验后就会显示一个下载的进度信息。
  4. 进入文件夹,输入 git status 就可以看到他是一个 Git 仓库的形式,可以进行项目管理,这也是和 Download ZIP 最本质的区别。

ssh 连接方式:

  1. 首先在本机上生成 ssh 公钥私钥。ssh-keygen -t rsa -C "xxx@xxx.com" 后面的邮箱是 github 克隆要使用的邮箱账号。然后终端提示信息会先让你输入要生成的密钥的文件路径(建议按回车保持默认并记住),还有生成密钥的一些密文(博主也没使用过,直接按回车即可),最后在目标路径中就生成了公钥和私钥。
  2. 去到生成密钥的路径中,.pub 文件是公钥,没有 .pub 后缀的文件是私钥。我们要把公钥文件中的内容复制粘贴到 github 中,私钥内容万不可泄露。 打开 .pub 文件并复制其中内容。
  3. 在 github-settings-ssh and gpg keys 中添加密钥,密钥名称自取,密钥内容粘贴刚才复制的公钥。
  4. 然后克隆仓库的时候可以直接输入 git clone ssh 地址,git 自动校验并完成克隆。

参考文章

Github配置ssh key的步骤(大白话+包含原理解释)

风中一匹狼v


版权声明:本文为CSDN博主「风中一匹狼v」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_42310154/article/details/118340458

Git公钥id_rsa.pub的配置

木偶☜


版权声明:本文为CSDN博主「木偶☜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_45096273/article/details/112797298

博主是在自己的实验和理解的基础上部分参考了前辈们的文章。还请大家多多支持原作者~

相关推荐
赖勇浩7 小时前
因浏览器未发送Referer HTTP头导致Django项目CSRF验证失败的原因
http·https·django·csrf
纪伊路上盛名在9 小时前
如何初步部署自己的服务器,达到生信分析的及格线
linux·运维·服务器·python·学习·r语言·github
叶北辰CHINA1 天前
nginx反向代理,负载均衡,HTTP配置简述(说人话)
linux·运维·nginx·http·云原生·https·负载均衡
GodK7772 天前
HTTPS 的加密流程
网络协议·http·https
西柚与蓝莓2 天前
任务【浦语提示词工程实践】
github
bush42 天前
使用root账号ssh登录虚拟机ubuntu
运维·ubuntu·ssh
Good_Starry2 天前
Git介绍--github/gitee/gitlab使用
git·gitee·gitlab·github
我命由我123452 天前
SSL 协议(HTTPS 协议的关键)
网络·经验分享·笔记·学习·https·ssl·学习方法
云端奇趣2 天前
探索 3 个有趣的 GitHub 学习资源库
经验分享·git·学习·github