GIT基础01 基础命令与分支

news2024/11/26 0:33:16

前言

我们知道git是开发中比较常见的版本控制工具

我们可以先提出一个场景:

老板让你去修改方案 

第一次修改 打回

第二次修改 打回

第n次修改 老板让你使用第一次的版本  阁下如何应对???

我对每个版本进行编号??  是一种方案

但是这里也是有缺陷的  比如说在很多版本中找一个有特定功能的版本不好找  

此时我们就可以使用git

git可以记录每个文本文件的新增 二进制大小的更新

命令 

安装命令

sudo yum install  -y  git

初始化仓库

git init

新增配置项

git config user.name qqsbx
git config user.email "1815798600"

//注意这里的变量需要配置全局  不然只是这个仓库这里有用 所以我们加上--global

git  config --golbal user.name qqsbx

删除配置项

git config --global --unset  属性

下面我们提出git的三个重要概念区域 

工作区       暂存区    版本库

我们执行了以上命令git就能管理了吗???

并不见得   我们需要将对应的文件进行add     commit才行

这里add就是将文件上传到暂存区   commit就是将缓存区的文件提交就行版本控制 主要的流程如下

这里的版本控制咋实现的??

其实就是维护一个objects对象库   

然后对应的master分支等就是保存起的版本索引  

每次只切换索引 修改索引即可 比较轻量级

master分支下也是一个目录树,存储的也是索引

只要拿到对应的head指针就能拿到 master分支 就能拿到对象 

添加命令

git add .  就是将所有的新增文件加进去暂存区
git add  file  也可以输入文件名来进行添加


   确认命令

git commit -m  "描述"

查看日志

git log
//查看好看的日志 一行展示
git log --pretty=oneline

我们知道对应的git仓库就是隐藏文件.git

这里.git/HEAD中存放的就是master

master中存放的就是对应的本地提交的一个commitID

查看git文件的内容

git cat-file -p commitID

注意一定要add了之后才能commit 

git追踪管理的并不是文件  而是对修改追踪

我们可以查看仓库状态来查看

查看仓库状态

git status 

也可以查看到文件的新增内容

查看文件变化内容

git diff  file(文件名)

OK下面就到了我们最经典的版本控制以及回退功能的操作了

这里我们先画个图理解一下

版本回退

git  reset    --soft/--mixed/--hard   HEAD

这里的soft就是只回退工作区

mixed可以省略是默认的    是回退工作区和暂存区

hard也是最危险的 可以直接回退工作区  暂存区  版本库的内容

我们可以通过以下命令来进行回退

git reset --hard commitID   
//这里commitID就代表了某个版本

然后如果我们回退错了

但是还记得新版本的版本commitId  也是可以进行恢复的

但是日志一多就很容易找不到之前的版本号

我们只想回退工作区的时候可以使用

git checkout -- 文件名  

我们想回退一个版本可以使用

git reset --hard HEAD^


//这里的HEAD就表示当前版本,加上一个^就表示上一个版本
如果多加几个^就表示前n个版本

如果我们想进行删除文件可以使用以下命令

删除文件

rm file 
-> add  ->  commit



或者可以使用git提供的命令
git rm file   ---> 这个命令是直接包含add操作的
后面直接commit 即可

分支管理

我们知道git一般是由多个分支的

我们在开发的时候是往往由不同的分支来开发

经过一定的审核之后再融入主分支的

这里每个文件的更新是以子节点的形式产生的

比如a文件更新了

这里在版本库下就是更新前的id 指向更新后的id

更新后的id是更新前id的子节点

下面是一个简单的创建分支的过程

查看分支

git branch

HEAD指针就是用来指向工作分支的

就是以HEAD分支来区分当前的工作分支是哪些

创建分支

git branch  分支名

假设我现在新增一个dev分支

结果图就是这样的

注意这里的分支是在最新的版本基础上创建出来的

所以新创建的dev分支就只有最新版本这一个版本的版本号

切换分支

git checkout 分支名

我们这个时候就可以切换到对应分支

然后使用 第一条命令 带星号指向的就是当前的工作分支

合并分支

git merge dev 

注意这里是不能再本分支上合并本分支的

一定要切换到其他分支才能合并本分支

删除分支

git branch -d 

创建并切换

git checkout -b 新分支名

这里的-b 就是branch

我们知道这里的合并经常会出现合并冲突问题

解决方案也就是手动解决加上重新上传即可

手动解决就是git会给对应的文件加上一段代码进行选择

我们只需要选择我们需要的版本即可

修改完重新 add  commit 即可

我们举个例子

假设我在dev分支修改了原文件

然后再master分支也修改了这个文件

这个时候我们想把dev分支merge进master分支

就会出现合并冲突问题

类似于下图

此时的状态就是这样的

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

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

相关文章

【AI+漫画】程序员小李解决疑难杂症BUG的日常

周末花了点时间制作的AI漫画。 感慨一句,程序人生, 相伴随行。 原文链接:【AI漫画】程序员小李解决疑难杂症BUG的日常

基于docker 的elasticsearch冷热分离及生命周期管理

文章目录 冷热集群架构的应用场景冷热集群架构的优势冷热集群架构实战搭建集群 索引生命周期管理认识索引生命周期索引生命周期管理的历史演变索引生命周期管理的基础知识Rollover:滚动索引 冷热集群架构的应用场景 某客户的线上业务场景如下:系统每天增…

网安面经之SSRF漏洞

一、ssrf漏洞 1、ssrf原理?危害?修复(防御)? 原理:SSRF就是服务器端请求伪造漏洞、它是一种由攻击者构造,由服务端发起请求的一个网络攻击,一般用来在外网探测或攻击内网服务&…

程序猿成长之路之数据挖掘篇——距离公式介绍

上一篇介绍了朴素贝叶斯,那么这次讲讲距离公式 什么是距离公式 用自己的话来说距离公式就是判断两个属性(参数)相似度的度量公式,比如以两点间距离为例,A地经纬度为(110.9802,120.9932),B地经纬度为(110.9980,120.828…

c++04STL部分复习

1、deque list vector概括: /* deque :双端队列容器 底层数据结构:动态开辟的二维数组,一维数组从2开始,以2倍的方式进行扩容,每次扩容后,原来的第二维的数组 从新的第一堆数组下表的oldsize/2开始存放&am…

XYCTF - web

目录 warm up ezMake ezhttp ezmd5 牢牢记住,逝者为大 ezPOP 我是一个复读机 ezSerialize 第一关 第二关 第三关 第一种方法: 第二种方法: ez?Make 方法一:利用反弹shell 方法二:通过进制编码绕过 ε…

EasyImage2.0 图床源码

EasyImage2.0 是一个简单图床的源码,它支持以下功能: 1. API接口 2. 登录后才能上传图片 3. 设置图片质量 4. 压缩图片大小 5. 添加文字或图片水印 6. 设定图片的宽度和高度 7. 将上传的图片转换为指定的格式 8. 限制上传图片的最小宽度和高度 …

《软件方法(下)》8.3.3 泛化的一些重点讨论(202405更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 8.3 建模步骤C-2 识别类的关系 8.3.3 泛化的一些重点讨论 8.3.3.1 子集的不相交和完整 泛化是集合关系,在建模泛化关系时,我们对泛化关系中的子类&#xff0…

JavaEE初阶-多线程5

文章目录 一、线程池1.1 线程池相关概念1.2 线程池标准类1.3 线程池工厂类1.4 实现自己的线程池 二、定时器2.1 java标准库中的定时器使用2.2 实现一个自己的定时器2.2.1 定义任务类2.2.2 定义定时器 一、线程池 1.1 线程池相关概念 池这个概念在计算机中比较常见&#xff0c…

极验4图标方向点选验证码

验证码如下如所示,提供了三个方向剪头。根据剪头顺序,点击大图中图标的方向完成验证。 经过我们的努力,正确率达到了90%左右。下面提供了验证码识别的代码。 import base64 import requests import datetime from io import BytesIO from PI…

Linux-软件安装--tomcat的安装

tomcat的安装 1、下载tomcat安装包2.移动到自己想要解压的目录3、解压文件夹4、启动tomcat5、查看tomcat进程6、查看日志7、通过浏览器访问成功8、停止tomecat服务8.1运行tomcat的bin目录中提供的停止服务的脚本文件shutdcwn.sh8.2结束tomcat进程1、下载tomcat安装包 本篇文章…

蓝海创业商机小吃配方项目,日入200+ ,小白可上手,图文创作转现快

小吃技术销售,一单价格从几元到几百元不等,行业竞争相对较小,是一个相对冷门的领域。只需一部手机,就可以发布图文并茂的内容,配上背景音乐(BGM),即使是对视频剪辑不熟悉的新手&…

【WEEK11】 【DAY6】Employee Management System Part 7【English Version】

2024.5.11 Saturday Continued from 【WEEK11】 【DAY5】Employee Management System Part 6【English Version】 Contents 10.8. Delete and 404 Handling10.8.1. Modify list.html10.8.2. Modify EmployeeController.java10.8.3. Restart10.8.4. 404 Page Handling10.8.4.1. …

如何取消格式化SD卡并恢复丢失的数据?

在相机中格式化SD卡后,您将丢失卡上的所有文件。如果有恢复形成操作的选项,您可以轻松取回文件。然而,相机或任何其他设备中没有这样的选项。它无法直接取消格式化相机SD卡,但您仍然可以从格式化的SD卡中恢复文件。 为什么格式化后…

excel常见图表大全

Excel图表是一种以图形形式呈现数据的工具,它将数字和统计信息转化为直观的视觉元素,如线图、柱状图、饼图等。这些图表可以帮助人们更容易地理解数据的趋势、关系和模式。 使用场景 Excel图表广泛应用于各个领域,包括: 商务分…

服装定制|基于SSM+vue的服装定制系统的设计与实现(源码+数据库+文档)

服装定制系统 目录 基于SSM+vue的服装定制系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户后台管理模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xf…

基于Springboot的村庄果园预售系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的村庄果园预售系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

2024情感聊天赛道,al工具制做,视频一分钟一条,日入500+

在这个领域,我们可以利用AI技术快速制作情感文章和闲聊内容。基本原理是结合热门创意文案,通过AI生成情感聊天短视频,然后在各大网站进行独家代理,这个领域的竞争相对较小,可以说是一片蓝海。 项 目 地 址 &#xff…

【目标检测论文解读复现NO.38】基于改进YOLOv8模型的轻量化板栗果实识别方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

【机器学习】LoFTR:革命性图像特征批评技术等领跑者

LoFTR:革命性图像特征匹配技术的领跑者 一、引言二、LoFTR技术的创新之处三、LoFTR技术的实现原理四、LoFTR技术的代码实例五、结语 一、引言 在3D计算机视觉领域,图像特征匹配技术一直是研究的热点和难点。随着技术的不断发展,传统的特征检…