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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络编程系列之UDP广播

Linux网络编程系列 (够吃,管饱) 1、Linux网络编程系列之网络编程基础 2、Linux网络编程系列之TCP协议编程 3、Linux网络编程系列之UDP协议编程 4、Linux网络编程系列之UDP广播 5、Linux网络编程系列之UDP组播 6、Linux网络编程系列之服务器编…

【linux】日志和journalctl 管理查看日志

目录 既看即用 简略介绍 linux的日志类型 系统日志 介绍 区别的简单说明 区别的详细说明 journalctl是什么?(查看系统日志的工具) 详细内容 linux的日志类型 systemd日志(systemd-journald) 放在哪个目录 …

(C++ STL) 详解vector模拟实现

目录 一.vector的介绍 1.vector的介绍 二.vector的定义模拟实现 三.vector各接口的模拟实现 1.vector迭代器的模拟实现 2.构造函数 2.1无参构造 2.2 n个val构造 2.3迭代器区间构造 2.4通过对象初始化(拷贝构造) 3.析构函数 4.size 5.operato…

RabbitMQ清除积压消息/管理界面出现 Unacked 消息

1.问题: rabbitmq的生产者端循环产生了多条消息给消费者,而消费者无法及时将消息处理掉,在消费端积压了多条消息(消费失败的时候,消息队列会一直重复的发送消息,导致程序死循环)需要清理项目因为…

寻找可靠的软件外包开发公司

寻找可靠的软件外包开发公司是关键,以确保项目的顺利交付和质量。以下是一些方法和步骤,帮助您找到可靠的软件外包开发公司,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 明确…

linux 学习:查找命令 find | grep

作者: 苏丙榅 原文链接: https://subingwen.cn/linux/commpress/ 在使用Linux系统的时候, 我们经常会需要查找某些文件,但是大多数情况下我们并不能确定这些文件的具体位置,这样的话就非常浪费我们的时间。Linux为我们提供了很多的用于文件搜索的命令, 如…

【Eclipse】安装与卸载教程

目录 1.绿色版免安装版本 2.安装版本 3.卸载 首先打开官网:Eclipse Downloads | The Eclipse Foundation 选择download package 如图所示,到如下界面 1.绿色版免安装版本 按图片点击,即可开始下载 下载好后解压 ,在桌面创建…

LeetCode24.两两交换链表中的节点

这道题还是比较简单,我看完题目的想法就是借助一个第三变量,来改变两个节点的指针的指向,比如我要改变1和2节点的指向,我用h1表示节点1,我创建一个新的节点ans,先拿ans指向节点2(ans.next h1.n…

超简单小白攻略:如何利用黑群晖虚拟机和内网穿透实现公网访问

文章目录 前言本教程解决的问题是:按照本教程方法操作后,达到的效果是前排提醒: 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机:1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

聚合支付的特点与应用建议

随着互联网技术的发展和繁荣,支付行业的发展如火如荼。目前已进入移动支付时代,支付手段和方式不断更新。2017年,建行、工行推出二维码支付,开展综合支付收单业务。 聚合支付具有灵活、方便、低成本、近市场的特点,符合…

HarmonyOS应用开发者基础认证【满分答案】

HarmonyOS应用开发者基础认证 一、判断题二、单选题三、多选题 一、判断题 在Column和Row容器组件中,justifyContent用于设置子组件在主轴方向上的对齐格式,alignItems用于设置子组件在交叉轴方向上的对齐格式。(正确) 所有使用C…

vue2 .sync 修饰符

vue2 .sync 修饰符 **创建 工程: H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day04\准备代码\13-sync修饰符 vue --version vue create v-sy…

Ubuntu 16.04 LTS third maintenance update release

Ubuntu 16.04 LTS (Xenial Xerus)今天迎来的第三个维护版本更新中,已经基于Linux Kernel 4.10内核,而且Mesa图形栈已经升级至17.0版本。Adam Conrad表示:“像此前LTS系列相似,16.04.3对那些使用更新硬件的用户带来了硬件优化。该版…

ios设备管理软件iMazing 2.17.11官方中文版新增功能介绍

iMazing 2.17.11官方中文版(ios设备管理软件)是一款管理苹果设备的软件, Windows 平台上的一款帮助用户管理 IOS 手机的应用程序,软件功能非常强大,界面简洁明晰、操作方便快捷,设计得非常人性化。iMazing官方版与苹果设备连接后&…

Leetcode hot 100之动态规划【递推公式】

目录 入门理解 斐波那契(Fibonacci)数列:递归 数塔:递推 递推公式 最小路径和 遍历顺序 整数拆分:拆分为和,乘积最大化 背包:: ->装包 框架 01背包:不可复选 倒序遍历 …

Ubuntu系统下配置安装区块链Hyperledger Fabric(新手小白篇)

有些安装过程比较简单的,不会详细赘述。主要还是集中在Hyperledger Fabric的配置上。 本篇主要介绍在Ubuntu系统上安装Hyperledger Fabric的过程。这里使用的Ubuntu:16.04 LTS。 1. Git安装 Git工具安装命令如下: sudo apt update sudo ap…

如何提高敏捷迭代效率?sprint backlog

​敏捷开发的核心就是小步快跑,快速迭代。过去,企业开发的需求是完整的、清晰的、固定的,产品定义也是稳定的,因此企业在项目开发中经常采用自上而下、相互衔接且固定次序的瀑布开发模式。而在当今,中国互联网快速发展…

Stm32_标准库_14_串口蓝牙模块_解决手机与蓝牙模块数据传输的不完整性

由手机向蓝牙模块传输时间信息,Stm32获取信息并将已存在信息修改为传入信息 测试代码: #include "stm32f10x.h" // Device header #include "Delay.h" #include "OLED.h" #include "Serial.h"uint16_t num…

计算机操作系统-第九天

1、虚拟机 传统计算机的特点:一台物理机器只能运行一个操作系统 虚拟机的特点: 使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine,简称VM)每个虚拟机都可以独立运行一个操作系统 虚拟…

生物标志物发现中的无偏数据分析策略

目录 0. 导论基本概念 1. 生物标志物发现的注意事项2. 数据预处理2.1 高质量原始数据和缺失值处理2.2 数据过滤2.3 数据归一化 3. 数据质量评估3.1 混杂因素3.2 类别分离3.3 功效分析3.4 批次效应 4. 生物标志物发现4.1 策略4.2 数据分析工具4.3 模型优化策略 0. 导论 组学技术…