git、、

news2025/1/4 19:13:52

有学弟想快速上手git,我就发个文章吧。

git区域划分:

  • 缓冲区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中。
  • 版本库:工作区有一个隐藏目录 .git,就是 Git 的版本库。

本地、缓冲区、版本库

1作用

分布式的代码版本管理工具/团队协作工具

张三->一段程序A.java

李四->一段程序B.java

在两个不同的文件,最传统的手工人工合并

帮助我们进行代码合作,方便进行团队协作的版本管理工具

像图片一样,不同的版本就是不同的分支。

github.com -全球范围内,微软收购了

gitlab.com

gitee.com--github.com国内版

2安装与使用

第一步安装git客户端

git官网Git - Downloads

也可以用yum安装 yum -y install git

查看版本 yum — version

brew install git

第二部设置本地名字和邮箱

Git 全局设置:

机器标识

git config --global user.name "用户名" git config --global user.email "你的邮箱"

第三步生成ssh key

ssh-keygen -t rsa -C "你的邮箱"

第一个回车,默认路径

第二个使用秘钥的密码也可以为空

第三次再次输入相同密码也可为空

我这个是重写过的所以有overwrite

然后根据路径

找到pub公钥

第四步在giteessh公钥添加公钥

使用

`公钥可以给别人

`私钥不要给任何人,只自己使用.

他俩钥匙都能解开对方的加密

自己通过私钥加密的链接能用公钥解开,此时就能认定我就是私钥的主人.

补充:

`加密证书

`电子签章

对称加密与非对称加密

“对称加密”很好理解,就是指加密和解密时使用的密钥都是同一个,是“对称”的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性。

举个例子,你想要登录某网站,只要事先和它约定好使用一个对称密码,通信过程中传输的全是用密钥加密后的密文,只有你和网站才能解密。黑客即使能够窃听,看到的也只是乱码,因为没有密钥无法解出明文,所以就实现了机密性。

1、DES

数据加密标准(DES)算法 采用的 56 位密钥,每次计算加密 64 位的数据。目前已经被证明可以被暴力破解。所谓暴力破解,就是遍历所有可能的密钥解析数据的方法。举个例子,已知张三和李四传输的是中文,加密算法是 DES,那么拿出一小段数据进行暴力破解,尝试所有的密钥,如果能成功解析出中文词语(词语在词库中可以查到),那么说明破解成功。

2、AES(推荐)

为了应对暴力破解等问题,很多团队选择对称加密算法时开始使用高级加密标准(AES),这个加密法用 128 位密钥,并设计了更难破解的算法。推荐在项目中使用

3、其他

RC4、DES、3DES、AES、ChaCha20 ,但前三种算法都被认为是不安全的,通常都禁止使用,目前常用的只有 AES 和 ChaCha20。

对称加密看上去好像完美地实现了机密性,但其中有一个很大的问题:如何把密钥安全地传递给对方,术语叫“密钥交换”。如果你和网站约定的密钥在传递途中被黑客窃取,那就没有安全性可言了。所以需要一种新的可以保证安全传递秘钥的算法。

非对称加密

非对称加密也叫公钥加密算法。它有两个密钥,一个叫“公钥”(public key),一个叫“私钥”(private key)。两个密钥是不同的,“不对称”,公钥可以公开给任何人使用,而私钥必须严格保密。

公钥和私钥有个特别的“单向”性,虽然都可以用来加密解密,但公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密。

非对称加密可以解决“密钥交换”的问题。网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文

1、RAS

RSA 几乎可以说是非对称加密的代名词,它的安全性基于“整数分解”的数学难题,使用两个超大素数的乘积作为生成密钥的材料,想要从公钥推算出私钥是非常困难的。

10 年前 RSA 密钥的推荐长度是 1024,但随着计算机运算能力的提高,现在 1024 已经不安全,普遍认为至少要 2048 位。

2、其他

DH、DSA、ECC 等。

HTTPS 协议的握手和交换密钥过程需要非对称加密算法;

应用

HTTPS 协议的握手和交换密钥过程需要非对称加密算法

比如利用证书实现 git 账号的免密操作也是基于非对称加密算法

文件提交

三个区域

第五步相关代码

其实不用代码,直接用idea的git很方便。

创建 git 仓库:

mkdir t-mall
cd t-mall
git init //初始化本地仓库
touch README.md
git add README.md//将本地文件加载到缓冲区
git commit -m "first commit"//将缓冲区文件加载到本地仓库
git remote add origin https://gitee.com/dukai01/ant-mall.git//添加一个新的远程仓库
git push -u origin "master"//推送缓冲区的文件到远程仓库主分支

用SSH不用密码

而HTTP需要密码

如果用了HTTP还想换SSH

remote rm origin

然后再重新进行操作

此时就已经创建完git仓库并且上传文件了

使用创建好的仓库

git clone +仓库//拷贝一份远程仓库

然后git add.

git status查看追踪情况

git commit -m

然后git push

同步线上仓库文件到本地

git fetch和git pull

同名且文件内容相同会报错

分支管理

创建分支命令:

git branch (branchname)

没有参数的时候就会展示你在本地的分支

删除分支命令:

git branch -d (branchname)

切换分支命令:

git checkout (branchname)

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

合并分支命令:

git merge 

为什么 GitHub 需要 SSH Key 呢?

因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的。Git 支持SSH 协议,所以, GitHub 只要知道了你的公钥,当你推送的时候,它就能知道这是你,从而允许你推送(这是非对称加密的功能:私钥对数据进行加密,公钥对加密后的数据进行签名验证,可以确定是否是匹配的私钥加密后的数据)。

当然, GitHub 允许你添加多个 Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的 Key 都添加到 GitHub,就可以在每台电脑上往 GitHub 推送了。

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

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

相关文章

【目标检测-数据集准备】DIOR转为yolo训练所需格式

【目标检测】DIOR遥感影像数据集,转为yolo系列模型训练所需格式。 标签文件位于Annotations下,格式为xml,yolo系列模型训练所需格式为txt,格式为 class_id x_center,y_center,w,h其中,train,text&#xff…

css 各种方位计算 - client系列 offset系列 scroll系列 x/y 系列

offset系列 HTMLElement.offsetTop - Web API 接口参考 | MDN 一文读懂offsetHeight/offsetLeft/offsetTop/offsetWidth/offsetParent_heightoffset-CSDN博客 client系列 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop-CSDN博客 scroll系列 秒懂scr…

JAVA基础—JVM内存结构基础需知

1.JVM内存结构 JVM内存结构分为5个区域:方法区,虚拟机栈,本地方法栈、堆、程序计数器。 1.方法区(Method Area):用于存储类的结构信息、常量、静态变量、即使编译器编译后的代码等数据。方法区也是所有线…

Spring项目问题—前后端交互:Method Not Allowed

问题 前后端交互时出现Method Not Allowed问题 Ajax中使用的是get,方法仍然出现post方法报错 Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method POST not supported] 浏览器中没有报错,只是接收不到后端返…

Midjourney视觉垫图

https://github.com/lllyasviel/Fooocus/discussions/117https://github.com/lllyasviel/Fooocus/discussions/117掌握Midjourney的垫图技巧:AI绘画中的参考利器本期将深入了解AI绘画的垫图技巧,让作品获得更好的出图效果https://mp.weixin.qq.com/s/RS2…

【QT 5 +Linux下qt软件点击.sh脚本运行+Dconf编辑器+学习他人文章+番外篇:点击脚本运行软件】

【QT 5 Linux下qt软件点击.sh脚本运行Dconf编辑器学习他人文章番外篇:点击脚本运行软件】 1、前言2、实验环境3、自我学习总结-本篇总结1、说明:代替qt的快捷方式2、适用性更广3、了解工具:Dconf编辑器注意事项: 4、参考链接-感谢…

力扣L11--- 344.反转字符串(JAVA版)-2024年3月15日

1.题目 2.知识点 交换两个变量值的代码 char temps[left];//temp为暂时的变量,left是左指针,将left暂时存储在temp里面s[left]s[right];//将右指针的值赋给左指针s[right]temp;//将temp的值给右指针left;//左指针向左移动right--;//右指针向右移动3.代码…

Python QT 之PySide6简单入门

目录 1.开发环境配置 1.1 下载PySide6 2.2 配置pycharm相关快捷方式 PySide6_Designer - QT Designer 设计UI PySide6_UIC - 将QT Designer生成的UI文件转换为python文件 PySide6_RCC - 将RCC文件转换为python文件 2.第一个开发实例 2.1 QT desiger设计界面 2.2 将ui文…

南大通用数据库-Gbase-8a-学习-43-SQL长时间处于Writing to net状态排查

目录 一、问题截图 二、排查思路 1、Gbase8a SQL有几种状态 2、问题导致原因猜想 3、观察服务端(集群端)网络情况 4、观察客户端网络情况 5、排查客户端程序处理数据慢 5.1、send (1)声明 (2)作用…

【SCI论文】“学术丑闻揭露:当AI写作遭遇学术审稿,ChatGPT意外成为论文共作者!“

在最近的学术圈中出现了一篇令人哭笑不得的论文。这篇文章标题为“The three-dimensional porous mesh structure of Cu-base…”发表在《Surfaces and Interfaces》杂志上,竟然包含了ChatGPT的提示语,暴露出了审稿过程中可能的疏忽。 文章讨论了铜基金…

行业突破!四信实现低延时摄像头弱网状态100ms以内实时传输

随着人工智能、大数据、区块链等技术在城市中快速发展,人们日常生活中已经离不开网络的支撑,而实现“人与人”、“人与物”及“物与物”之间高速连接应用的“时延”,是网络支撑中最重要的存在。 以城市生活例子为例,当网络延时出现…

王勇:硬科技的下一站 | 演讲嘉宾公布

一、智能耳机与可穿戴专题论坛 智能耳机与可穿戴专题论坛将于3月27日同期举办! 智能耳机、可穿戴设备已经逐渐融入我们的生活,它们不仅带来了便捷与舒适,更在悄然改变着我们的生活方式和工作模式。在这里,我们将分享最新的研究成果…

图像分类技术在电商平台的创新应用与实践

一、引言 在当今快速发展的互联网电商领域,商家面临着激烈的竞争和不断变化的市场需求。我们在服务电商的过程中,利用AI大模型技术创新性地引入了图像分类技术,为供应链管理带来了革命性的变革。接下来,我们将深入探讨这一项目的…

【STM32学习】PWM学习,(二)驱动LED呼吸灯

上文学习了PWM的基本概述,和PWM的各种参数,本文 学习使用PWM信号去驱动LED实现呼吸灯的效果。 1、PWM驱动LED呼吸灯 1.1介绍 目标:单片机输出一个PWM信号,驱动LED呼吸亮灭。PWM占空比高,则LED更亮;PWM占空…

javase day05笔记

第5天课堂笔记 四舍五入问题,保留两位小数★ System.out.printf("%.2f\n" , d);选择结构★★★ ifif(){}else{}:二选一if(){}else if(){}else if(){} else{} :多重if:多选1 和 equals区别★★★ 基本数据类型:对比值…

STM32F103 CubeMX 使用USB生成鼠标设备

STM32F103 CubeMX 使用USB生成鼠标设备 1 配置cubeMX1.1配置外部晶振,配置debug口1.2 配置USB1.3 配置芯片的时钟1.4 生成工程 2. 编写代码2.1 添加申明2.2 main函数代码 1 配置cubeMX 1.1配置外部晶振,配置debug口 1.2 配置USB 1.3 配置芯片的时钟 需…

【算法与数据结构】深入解析二叉树(二)之堆结构实现

文章目录 📝二叉树的顺序结构及实现🌠 二叉树的顺序结构🌠 堆的实现🌠 堆的实现🌉堆向下调整算法🌉堆的创建🌉建堆时间复杂度🌉堆的插入🌉堆的删除 🌠堆向上调…

sqllab第十九关通关笔记

知识点: 错误注入 最大长度为32位;如果目标长度>32时,需要利用截取函数进行分段读取referer注入 insert语句update语句 通过admin admin进行登录发现页面打印除了referer字段的信息 这应该是一个referer注入 首先进行测试一下 构造payl…

MATLAB/SIMULINK流水账

01.模块大小的一致性 当模型建完以后,模型大小比较散乱,可以利用该功能快速整理模块的大小 例如:如下5个constant模块,大小不一 若想把所有的模块都调整至跟第3个模块一样的大小 需要先把5个模块全部选取起来,另外再…

开发指南006-后端配置文件

后端配置文件分为两层,一是部署目录中的内容如下: 这里最重要的是端口号,同一个目录下可以是一个jar包多个配置文件,启动批处理中,按一个配置文件启动一个程序的方式启动多个服务。例如上面目录里的启动批处理文件可以…