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

news2024/9/20 9:26:02

前言

最近瞎搞 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1100759.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年中国钢卷尺产量、销量、市场均价及市场规模分析[图]

卷尺是日常生活中常用的工量具,是家庭必备工具之一。鲁班尺、风水尺、文公尺同样属于钢卷尺。钢卷尺是建筑和装修常用工具。钢卷尺可分为,自卷式卷尺、制动式卷尺、摇卷式卷尺。钢卷尺的其他名称有:钢皮卷尺、钢盒尺。 钢卷尺市场已经告别了以…

什么是库存管理?无需Excel,2023年这几款大热库存管理软件你get了吗?

什么是库存管理?库存管理是什么意思?都有哪些好用的库存管理系统?相信这些都是大家非常关注的话题,这篇就跟大家详细唠唠什么是库存管理,都用什么系统可以进行库存管理,并且为大家盘点2023年这几款大热库存…

和硕首次参加展OCP 峰会,将发布多项AI合作项目产品 | 百能云芯

电子代工大厂和硕联合科技宣布,将参与今年的 OCP 全球峰会 (OCP Global Summit),展示与英伟达 (NVIDIA) 合作成果,包含使用英伟达 GH200 Grace Hopper 超级芯片的 MGX AI 服务器,以及搭载 A100、L40 等服务器产品。 OCP 峰会于 10…

斯坦福JSKarel编程机器人使用介绍

斯坦福JSKarel编程机器人使用介绍 为了避免被编程语言固有的复杂性所困扰,有一个被称为卡雷尔(Karel)机器人的微型世界(microworld)的简化环境,可以让编程初学者从中学习理解编程的基本概念,而…

GaussDB for openGauss部署形态

前言 华为云数据库GaussDB是华为自主创新研发的分布式关系型数据库,具有高性能、高可用、高安全、低成本的特点,本文带你详细了解GaussDB数据库的部署形态。 1、GaussDB部署形态三种类型 GaussDB部署形态:单机 独立部署是将数据库组件部署…

10.17课上(七段显示器,递归异或与电路)

异或的递归与数电实现 用二选一选择器实现异或函数 在异或当中,如果有一项为0,就可以把那一项消掉;如果有一项为1,就是把剩下的所有项运算完的结果取反 (由此在算法当中可以采用递归解决) 当w1为0时&…

电脑蓝牙与ESP32蓝牙连接,让电脑发现ESP32

win11蓝牙默认只查看常见蓝牙设备。ESP32创建的蓝牙很有可能是看不到的。 再蓝牙设备发现一栏选择高级&#xff0c;才能查看所有蓝牙设备。 只要下面几行代码&#xff0c;就能让PC发现ESP32 #include <BLEDevice.h> // 引入相关库void setup() {BLEDevice::init("…

使用 PDB Alignment Tool 对 PDB 中多个蛋白结构进行比对

0. 说明&#xff1a; 利用 PDB 提供的在线工具 PDB Alignment Tool (https://www.rcsb.org/alignment) 对 PDB 中多个蛋白进行结构比对&#xff0c;并将比对结果输出&#xff0c;用于后续计算不同链上氨基酸之间的距离。 1. 步骤&#xff08;以 3GBM_A, 3FKU_A 和 2FK0_A 为例…

Linux学习——进程状态

目录 一&#xff0c;进程状态 1&#xff0c;进程状态的分类 2.状态的本质 3.进程状态详解 1.运行状态 2.阻塞状态 3.挂起状态 4.Linux内核中的状态分类 一&#xff0c;进程状态 1&#xff0c;进程状态的分类 如下图&#xff1a; 在计算机中我们的状态的分类便如下图所示…

16-k8s-configMap配置管理中心

文章目录 一、相关概念二、基于目录创建configMap三、基于文件创建configMap四、基于自定义参数创建configMap五、configMap使用六、configMap热更新 一、相关概念 简介 为了解决传统容器中配置的挂载、变更、管理等问题&#xff0c;在k8s中引入了一个叫做configmap的资源对象&…

采用医疗AI、自然语言处理技术的java智能导诊导医系统源码

一套java智能导诊导医系统源码&#xff08;演示自主版权商业项目应用&#xff09; 随着人工智能技术的快速发展&#xff0c;语音识别与自然语言理解技术的成熟应用&#xff0c;基于人工智能的智能导诊导医逐渐出现在患者的生活视角中&#xff0c;智能导诊系统应用到医院就医场景…

同为科技TOWE智能PDU引领数据中心机房远控用电安全高效

随着数据中心的环境变得更加动态和复杂&#xff0c;许多数据中心都在对数据中心管理人员施加压力&#xff0c;要求提高可用性&#xff0c;同时降低成本&#xff0c;提升效率。新一代高密度服务器和网络设备的投入使用&#xff0c;增加了对更高密度机架的需求&#xff0c;并对整…

《持续交付:发布可靠软件的系统方法》- 读书笔记(五)

持续交付&#xff1a;发布可靠软件的系统方法&#xff08;五&#xff09; 第二部分——部署流水线第 5 章 部署流水线解析5.1 引言5.2 什么是部署流水线5.3 部署流水线的相关实践5.3.1 只生成一次二进制包5.3.2 对不同环境采用同一部署方式5.3.3 对部署进行冒烟测试5.3.4 向生产…

vcpkg manifest 的使用

最近项目上要使用 CMakeLists 管理&#xff0c;由于 Windows 版本有依赖到 vcpkg 提供的库&#xff0c;所以需要使用 vcpkg manifest 来统一设置库的版本&#xff0c;方便后续维护 推荐一个文章&#xff0c;介绍的可以说是非常全面了 VCPKG 特性 - Versioning 不过里面也有一些…

『C++ - STL』之优先级队列( priority_queue )

文章目录 前言优先级队列的结构优先级队列的模拟实现仿函数 最终代码 前言 什么是优先级队列&#xff0c;从该名中可以知道他一定有队列的一定属性&#xff0c;即先入先出(LILO)&#xff0c;而这里的优先级则可以判断出它的另一个特点就是可以按照一定的条件将符合该条件的先进…

Debian衍生桌面项目SpiralLinux12.231001发布

导读SpiralLinux 是一个从 Debian 衍生出来的桌面项目&#xff0c;其重点是在所有主要桌面环境中实现简洁性和开箱即用的可用性。 spiral Linux 是为刚接触 Linux 世界的人们量身定制的发行版。这是 GeckoLinux 开发人员的创意&#xff0c;他更喜欢保持匿名。尽管他不愿透露姓…

图文详解!带你认识 ancert:硬件兼容性标准实现工具!| 龙蜥技术

编者按&#xff1a;大家都知道 OS 其实是硬件设备资源利用的抽象&#xff0c;所以 OS 和各个硬件设备之间是否兼容&#xff0c;对 OS 的稳定性是非常关键。今天&#xff0c;龙蜥社区硬件兼容性 SIG Maintainer 吴朝峰为大家介绍龙蜥社区硬件兼容性认证的步骤和流程&#xff0c…

python项目之大学生就业信息管理系统设计与实现

项目简介 大学生就业信息管理系统实现了以下功能&#xff1a; 管理员功能&#xff1a;权限认证&#xff0c;职位管理&#xff0c;企业管理&#xff0c;留言管理&#xff0c;用户管理&#xff0c;投递管理。用户功能&#xff1a;首页&#xff0c;招聘会&#xff0c;留言板&…

5.Vue-在Vue框架中实现Vue的增删改查

题记 在vue框架中实现vue的增删改查&#xff0c;以下是具体操作流程和代码 编写TestView.vue文件 TestView.vue文件如下&#xff1a; <template> <div id"app"> <h1>学生列表</h1> <input type"text" v-model"searchQue…

Nodejs原型链污染学习

文章目录 前置知识JavaScript数据类型prototype原型同步和异步child_process模块 原型链污染利用条件 前置知识 JavaScript数据类型 let和var关键字的区别 使用var或let关键字可以定义变量 let和var的区别如下&#xff1a; var是全局作用域&#xff0c;let 只在当前代码块内…