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,只差一层窗户纸;但在小红的眼里…...
SpringBoot整合(二)MyBatisPlus技术详解
MyBatisPlus详解 一、标准数据层开发 MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 MyBatisPlus的官网为:https://mp.baomidou.com/ 1.1 标准CRUD 1.2 新增 int insert (T t)T:泛型,…...
导入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(对象关系映射࿰…...
你是真的“C”——操作符详解【下篇】+整形提升+算术转换
你是真的“C”——操作符详解下篇😎前言🙌操作符详解【上篇】内容:操作符详解【下篇】内容:1、 条件操作符2、逗号表达式:3、下标引用、函数调用和结构成员3、访问一个结构的成员表达式求值1、隐式类型转换:…...
文本匹配SimCSE模型代码详解以及训练自己的中文数据集
前言 在上一篇博客文本匹配中的示例代码中使用到了一个SimCSE模型,用来提取短文本的特征,然后计算特征相似度,最终达到文本匹配的目的。但是该示例代码中的短文本是用的英文短句,其实SimCSE模型也可以用于中文短文本的特征提取&a…...
Biotin-PEG-FITC 生物素聚乙二醇荧光素;FITC-PEG-Biotin 科研用生物试剂
结构式: Biotin-PEG-FITC 生物素聚乙二醇荧光素 英文名称:Biotin-PEG-Fluorescein 中文名称:生物素聚乙二醇荧光素 外观:黄色液体、半固体或固体,取决于分子量。 溶剂:溶于大部分有机溶剂,…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
