当前位置: 首页 > news >正文

git、gitee、github关系梳理及ssh不对称加密大白话解释

温馨提示:本文不会讲解如何下载、安装git,也不会讲解如何注册、使用gitee或GitHub,这些内容网上一大把,B站上的入门课程也很多,自己看看就好了。

本文仅对 git、gitee、github的关系梳理及ssh公钥私钥授权原理用白话讲解清楚。

1、git、Gitee、GitHub之间是什么关系?

  • git是个工具,是个软件,官网直接就可以下载。你就算没有gitee账户或github账户,也可以使用,只不过是在本地使用而已。主要作这个用:版本管理,说白点就好比游戏存档,通过git你可以随时取出去前面的存档,在代码上说就是可以恢复到存档了的前面的源码。git会在我们源程序目录下建一个“.git”的文件夹(隐藏的),我们通常称做**“本地仓库”**。
  • Gitee(国内的)和Github(国外的)是网络仓库,说直白的就是网盘网页版,主要用来服务程序猿管理源码的网盘(其实你就是在里面存歌曲也是可以的),直接在网页上就可以上传文件到网络仓库中,就如上传文件到网盘一样。
  • 两者关系就好比:git 类似这些gitee、GitHub网站的客户端,通过一些设置、命令,git这个工具j就可以和网络上的gitee或github仓库通过授权连通,然后通过在git中输各种命令管理网上仓库的文件。

2、git 为什么要设username, 又要添加remote,又要ssh公钥私钥?

虽然一般用git主要目的是将本地源码备份到网络仓库上,然后其他同事或者你在其他电脑上可以拉取到源码继续工作,比如下班可以在家拉取单位写的源码,但是其实git只用在本地也没问题,只是一般不会这么干。比如下面几个命令就是完全操作本地仓库:

git init   # 初始化
git add .   # 添加新变更到缓存
git commit -m ‘first commit’   # 提交新变更

为什么要设username?

这里先说这个问题,当你提交commit的时候,系统是会提示你要设置用户名和邮箱(如果你之前没有设置的话),这里的用户名和用户邮箱对应的其实就是告诉Git当前源码是谁谁提交的(当然一般谁写谁提交啦), 所以这里的用户名和密码就如好比当年你设置QQ昵称,是个认人的标志而已,所以好多教程都会提及说设置好用户名,邮箱随便写就好。

git config –global user.name “用户名”   # 设置用户名
git config –global user.email “用户邮箱”   #设置邮箱

为什么要添加remote?

下面,我们如果要把源代码传到网络仓库上去,就要用和网络仓库相关的命令了(比如:git push -u origin master # 同步远程仓库),但是,问题又来了,gitee或Github上那么多仓库,Git这个软件得知道你要传到哪个网络仓库?所以要用下面的命令告诉它(告诉它一次就好,下次就不用再说了,除非你换了仓库),然后再用push推送命令即可:

# 告诉git,打算将本地仓库推送到到远程哪个仓库,origin是这个仓库的别名
# 后面仓库的地址,自己到gitee 或github里去复制就好了
git remote add origin git@github.com:帐号名/仓库名.git
git push -u origin master   # 同步远程仓库  

为什么要用SSH公钥私钥?

但是,又是但是,你可能发现又会报错,因为你的仓库虽然开源,谁都可以下载,但显然不愿意谁都可以胡乱上传到你的网络仓库上吧?没有gitee或GitHub网站的你自己注册的账号和密码,Git啥也传不上去。两个办法:1、告诉git账号和密码(上传前弹出输入框等你输入),显然每次这样太麻烦。2、用SSH公钥模式,(一般的地球人都用这个模式)。

3、ssh公钥私钥到底是什么?怎么弄?怎么用?

- 先说什么是ssh公钥?参考下图边看说明:

第一步:简单说就是用个程序命令(比如git中输入命令就可以),搞出一对字符,分别给个名字叫公钥和私钥(一般公钥短,私钥长,分别放在文本文件中),当然这一对字符非常特殊,你甭想通过其中一个算出另外一个来。
第二步+第三步:好了,现在将私钥务必自己存好,把公钥上传到gitee网站或其他需要的网站,其实就是你自己先登陆网站,然后网站有专门的页面,让你把公钥内容填上去,你点击确定或提交后,网站就把你的公钥存到他们服务器上。
第四步:当下次你想通过某软件方式而非手工打开网页登陆网站时(比如用git来登陆获取gitee网站授权传输东西),就把私钥给网站(怎么给,继续看下面内容),网站会把前面你给的公钥和你的私钥匹配,如果是一对就直接让你登陆,账号和密码都不需要了。
在这里插入图片描述
在这里插入图片描述

- 怎么弄到公钥私钥?怎么用?

建议直接看 gitee网站上的介绍,直接在git中输入命令就可以了,已经很简明清晰了。
链接 https://gitee.com/help/articles/4181

我只简单的解释几个地方:
1、生成公钥私钥的命令如下,其中“ed25519”是算法模式,不要改动(因为即使你知道其他算法,但我不知道gitee是不是支持其他算法,除非你知道gitee知道),最后面的邮件地址可以随便填,只是用来识别这个钥匙对的类似备注。

# 生成 sshkey:
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"  
# Generating public/private ed25519 key pair...

2、命令成功的话,会在下面的目录中生成公钥和私钥文件(文本文件),如果要在另一台机器上使用这对公钥和私钥,必须将.ssh目前全部复制过去而不是只复制私钥,因为大多数网站为了安全会同时检查。公钥用文本打开直接复制后就可以提供给网站了。
在这里插入图片描述

2、注意下面的命令行,是首次使用需要确认并添加主机到本机SSH可信列表。如果你把公钥私钥给了另一台机器使用,那另一台机器也要输入这个命令来添加可信任。

#终端(Terminal)中输入
ssh -T git@gitee.com

相关文章:

git、gitee、github关系梳理及ssh不对称加密大白话解释

温馨提示:本文不会讲解如何下载、安装git,也不会讲解如何注册、使用gitee或GitHub,这些内容网上一大把,B站上的入门课程也很多,自己看看就好了。 本文仅对 git、gitee、github的关系梳理及ssh公钥私钥授权原理用白话讲…...

UDP协议详解

目录 前言: 再谈协议 UDP协议 比较知名的校验和 小结: 前言: UDP和TCP作为传输层非常知名的两个协议,那么将数据从应用层到传输层数据是怎样进行打包的?具体都会增加一些什么样的报头,下面内容详细介绍…...

Myb atis基础3

Mybatis注解开发单表操作Mybatis的常用注解Mybatis的增删改查MyBatis注解开发的多表操作MyBatis的注解实现复杂映射开发一对一查询一对多查询多对多查询构建sqlsql构建对象介绍查询功能的实现新增功能的实现修改功能的实现删除功能的实现Mybatis注解开发单表操作 Mybatis的常用…...

VHDL语言基础-时序逻辑电路-寄存器

目录 寄存器的设计: 多位寄存器: 多位寄存器的VHDL描述: 移位寄存器: 串进并出的移位寄存器的VHDL描述: 寄存器的设计: 多位寄存器: 一个D触发器就是一位寄存器,如果需要多位寄存器&…...

高通开发系列 - linux kernel更新msm-3.18升至msm-4.9

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 linux kernel更新msm-3.18升至msm-4.9第一周处理的内容:第二周处理的内容第三周处理的内容linux kernel更新msm-3.18升至msm-4.9 第…...

【Tensorflow2.0】tensorflow中的Dense函数解析

目录1 作用2 例子3 与torch.nn.Linear的区别4 参考文献1 作用 注意此处Tensorflow版本是2.0。 由于本人是Pytorch用户,对Tensorflow不是很熟悉,在读到用tf写的代码时就很是麻烦。如图所示,遇到了如下代码: h Dense(unitsadj_di…...

PyTorch学习笔记:data.RandomSampler——数据随机采样

PyTorch学习笔记:data.RandomSampler——数据随机采样 torch.utils.data.RandomSampler(data_source, replacementFalse, num_samplesNone, generatorNone)功能:随即对样本进行采样 输入: data_source:被采样的数据集合replace…...

设计模式(七)----创建型模式之建造者模式

1、概述 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。 由于实现了构建和装配的解…...

DCGAN

DCGAN的论文地址[https://arxiv.org/pdf/1511.06434.pdf]。DCGAN是GAN的一个变体,DCGAN就是将CNN和原始的GAN结合到一起,生成网络和鉴别网络都运用到了深度卷积神经网络。DCGAN提高了基础GAN的稳定性和生成结果质量。DCGAN主要是在网络架构上改进了原始的…...

【速通版】吴恩达机器学习笔记Part3

目录 1.多元线性回归 a.特征缩放 可行的缩放方式: 1.除以最大值: 2.mean normalization: 3.Z-score normalization b.learning curve: c.learning rate: 2.多项式回归 3.classification logistics regression 1.多元线性回归 其意义很…...

【leetcode】跳跃游戏

一、题目描述 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums [2,3,1,1,4] 输出:true 解释&#x…...

论文投稿指南——中文核心期刊推荐(冶金工业 2)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…...

【GPLT 二阶题目集】L2-044 大众情人

人与人之间总有一点距离感。我们假定两个人之间的亲密程度跟他们之间的距离感成反比,并且距离感是单向的。例如小蓝对小红患了单相思,从小蓝的眼中看去,他和小红之间的距离为 1,只差一层窗户纸;但在小红的眼里&#xf…...

SpringBoot整合(二)MyBatisPlus技术详解

MyBatisPlus详解 一、标准数据层开发 MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 MyBatisPlus的官网为:https://mp.baomidou.com/ 1.1 标准CRUD 1.2 新增 int insert (T t)T:泛型&#xff0c…...

导入importk8s集群,添加node节点,rancher agent,Rancher Agent设置选项

curl方式: Rancher在每个节点上部署代理以与节点通信。 此页面描述了可以传递给代理的选项,要使用这些选项,您需要采用创建自定义集群 ,并在docker run添加节点时将选项添加到生成的命令中。 常规选项 参数环境变量描述—serve…...

C++11--右值引用与移动语义

目录 基本概念 左值与右值 左值引用与右值引用 右值引用的使用场景和意义 左值引用的使用场景 右值引用和移动语义 移动构造和拷贝构造的区别 编译器的优化 移动赋值和赋值运算符重载的区别 右值引用的其他应用场景 完美转发 万能引用 完美转发保持值属性 完美转…...

Python SQLAlchemy入门教程

本文将以Mysql举例,介绍sqlalchemy的基本用法。其中,Python版本为2.7,sqlalchemy版本为1.1.6。 一. 介绍 SQLAlchemy是Python中最有名的ORM工具。 关于ORM: 全称Object Relational Mapping(对象关系映射&#xff0…...

你是真的“C”——操作符详解【下篇】+整形提升+算术转换

你是真的“C”——操作符详解下篇😎前言🙌操作符详解【上篇】内容:操作符详解【下篇】内容:1、 条件操作符2、逗号表达式:3、下标引用、函数调用和结构成员3、访问一个结构的成员表达式求值1、隐式类型转换&#xff1a…...

文本匹配SimCSE模型代码详解以及训练自己的中文数据集

前言 在上一篇博客文本匹配中的示例代码中使用到了一个SimCSE模型,用来提取短文本的特征,然后计算特征相似度,最终达到文本匹配的目的。但是该示例代码中的短文本是用的英文短句,其实SimCSE模型也可以用于中文短文本的特征提取&a…...

Biotin-PEG-FITC 生物素聚乙二醇荧光素;FITC-PEG-Biotin 科研用生物试剂

结构式: ​Biotin-PEG-FITC 生物素聚乙二醇荧光素 英文名称:Biotin-PEG-Fluorescein 中文名称:生物素聚乙二醇荧光素 外观:黄色液体、半固体或固体,取决于分子量。 溶剂:溶于大部分有机溶剂,…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes&#xff0…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...