GIT基础01 基础命令与分支

前言

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

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

老板让你去修改方案 

第一次修改 打回

第二次修改 打回

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

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

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

此时我们就可以使用git

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

命令 

安装命令

sudo yum install  -y  git

初始化仓库

git init

新增配置项

git config user.name qqsbx
git config user.email "1815798600"//注意这里的变量需要配置全局  不然只是这个仓库这里有用 所以我们加上--globalgit  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.mzph.cn/pingmian/12056.shtml

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

相关文章

测试驱动来学习 Promise

基础功能 测试案例:以同步的方式调用。 /*** v1: 基础功能*/ const p1 new MyPromise((resolve, reject) > {resolve(success)reject(error) })p1.then((value) > {console.log(v1: , value) }) 实现功能:在 status 和 value 的位置暂存值&…

什么是MVC?什么是SpringMVC?什么是三层架构?

文章目录 应用分层什么是MVC?什么是 SpringMVC?三层架构三层架构和MVC的关系 应用分层 在讲解什么是MVC之前,先来理解一下什么是应用分层。 应用分层是一种软件开发设计思想,将应用程序划分成N个层次,每个层次都分别负责自己的…

StarryCoding 入门教育赛 3 题解C++

比赛链接&#xff1a;https://www.starrycoding.com/contest/8 A. 坐标变换 语法题&#xff0c;考察输入输出、循环结构、数学运算。 #include <bits/stdc.h> using namespace std; using ll long long;const ll p 998244353; const int N 2e5 9;void solve() {in…

鸿蒙应用开发之调用C++开发代码库1

由于鸿蒙应用主要基于ArkTS开发,主要使用的语言是ETS,也就是JS脚本方式来开发,这与C++语言开发是不同的语言,这样就不能直接相互调用,因为不同的语言使用不同的数据结构,不同的调用方式,不同的运行环境。要想在ETS语言里调用C++开发的代码,需要进行合适的转换,并且按指…

Java学习【类与对象—封装】

Java学习【类与对象—封装】 封装的概念封装的实现包的概念import 导包导包中*的介绍import static 导入包中的静态方法和字段 static关键字的使用static 修饰成员变量static修饰方法静态成员变量的初始化 代码块静态代码块非静态代码块/实例化代码块/构造代码块加载顺序 封装的…

什么是外呼系统?企业为什么使用ai电销外呼系统

说起ai电销外呼系统&#xff0c;或许有的人并不了解这是什么&#xff0c;但它却常常出现在我们的生活中&#xff0c;今天我们来看看什么是外呼系统&#xff0c;企业为什么使用ai电销外呼系统&#xff1f; 一、什么是外呼系统 外呼系统就是由系统自动拨打电话的&#xff0c;外呼…

单例模式(饿汉+懒汉)

单例模式 文章目录 单例模式定义饿汉式单例**饿汉式单例需要加volatile关键字吗**类加载过程 懒汉式单列 定义 单例模式(Singleton),保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点 饿汉式单例 饿汉式单例是Java中实现单例模式的一种方式&#xff0c;它在类…

HTML常见标签-标题标签

标题标签 标题标签一般用于在页面上定义一些标题性的内容,如新闻标题,文章标题等,有h1到h6六级标题 代码 <body><h1>一级标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4><h5>五级标题</h5>…

视频提取gif的手机端操作方法?看看这个就会了

Gif图片是一种非常流行的格式&#xff0c;广泛应用于社交媒体、网络宣传单等。它们能够轻松的吸引大众的注意力&#xff0c;在使用聊天软件的时候我们常常会使用gif动图表情包来调节聊天氛围。Gif动图比普通的图片有趣&#xff0c;也比视频的体积要小。我们想要通过手机来把视频…

从需求到实现:能源软件服务商如何量身定制企业解决方案

能源行业需要数字化转型的原因主要有以下几点&#xff1a;首先&#xff0c;数字化技术可以提高生产效率和安全性&#xff0c;通过实时监控和智能调度降低事故风险&#xff0c;并实现远程控制和自动化生产。其次&#xff0c;数字化转型有助于推动能源行业的创新发展&#xff0c;…

GPT-4o正式发布;零一万物发布千亿参数模型;英国推出AI评估平台

OpenAI 正式发布 GPT-4o 今天凌晨&#xff0c;OpenAI 正式发布 GPT-4o&#xff0c;其中的「o」代表「omni」&#xff08;即全面、全能的意思&#xff09;&#xff0c;这个模型同时具备文本、图片、视频和语音方面的能力&#xff0c;甚至就是 GPT-5 的一个未完成版。 并且&…

本地安装nvm,管理多版本node

先卸载本地的nodejs(14.16.1) 卸载的直接可以点击win10图标→设置→应用→应用和功能 卸载nodejs即可 2. 安装nvm&#xff0c;地址&#xff1a;https://github.com/coreybutler/nvm-windows/releases 安装目录时尽量不要出现特殊字符还有空格&#xff0c;否则会在nvm use xxx的…

HTML常用标签-列表标签

列表标签 有序列表 分条列项展示数据的标签, 其每一项前面的符号带有顺序特征 无序列表 分条列项展示数据的标签, 其每一项前面的符号不带有顺序特征 有序列表标签 ol无序列表标签 ul列表项标签 li代码 <!-- 有序列表 --><ol><li>JAVA</li><li>前…

python的文件处理

文件分为文本文件和二进制文件&#xff1a; 我这样理解&#xff1a;就是电脑上用记事本打开我们可以看懂的文件就是文本文件&#xff0c;比如docx&#xff0c;txt&#xff0c;cpp&#xff0c;json&#xff0c;md等。直接点开看不懂的就是二进制文件&#xff0c;比如png&#xf…

考研数学|强化《660》+《880》这样刷,太丝滑了❗️

660题880题需要大概两个月才能做完 660题和880题都是很高质量的题集&#xff0c;所以做起来一点也不轻松。 每年都会有学生暑假两个月只做了一本660题的情况&#xff0c;因为题目实在是太难&#xff0c;有点做不下去的感觉。 不过不要担心&#xff0c;暑假就是刷题发现问题的…

k8s 网络组件详细 介绍

目录 一 k8s 有哪些网络组件 二 k8s 网络概念 1&#xff0c; k8s 三种网络 2&#xff0c;K8S 中 Pod 网络通信 2.1 Pod 内容器与容器之间的通信 2.2 同一个 Node 内 Pod 之间的通信 2.3 不同 Node 上 Pod 之间的通信 三 Flannel 网络组件 1&#xff0c;Flannel …

C++干货--引用

前言&#xff1a; C的引用&#xff0c;是学习C的重点之一&#xff0c;它与指针的作用有重叠的部分&#xff0c;但是它绝不是完全取代指针(后面我们也会简单的分析)。 引用的概念&#xff1a; 引用 不是新定义一个变量 &#xff0c;而 是给已存在变量取了一个别名 &#xf…

spring boot 线程池的应用

文章目录 引言I 配置线程池II 封装线程池任务执行器2.1 唯一性标识2.2 LogFilter:设置request_id2.3 logback使用request_idIII 检测线程池引言 SpringBootApplication启动类上需要加入注解@EnableAsync或者在配置类上使用 应用场景:封装线程池任务执行器:在任务提交时,会…

学习uni-app期间css样式的导入、单位属性和ui工具关系

css单位属性 css中单位有&#xff1a; px &#xff1a;屏幕像素 vw&#xff1a;屏幕宽度 vh &#xff1a;屏幕高度 rpx &#xff1a;响应式 px&#xff0c;一种根据屏幕宽度自适应的动态单位。以 750 宽的屏幕为基准&#xff0c;750rpx 恰好为屏幕宽度。屏幕变宽&#xff0c;rp…

【转载】【亲测可用】Ubuntu18.04安装VTK-8.2.0

这篇文章转载大部分都参考自下面的链接&#xff0c;注意cmake的版本&#xff0c;如果版本不对是编译失败的 https://blog.csdn.net/qq_42257666/article/details/124574029?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171566768016800182751339%2522%252C%2522…