Git入门 -- 分支

ops/2024/9/23 23:05:05/

Git入门 – 分支

1.分支理解

1.1 主分支

在初始化一个Git项目后,默认只有一个分支(master)。主分支表示项目的稳定版本,其中应该包含无Bug的稳定代码,并且保持随时可以发布的状态。

1.2 功能分支

当项目需要开发新的功能时,应该创建一个新的功能分支。创建分支时,新分支默认指向的代码提交版本为当前分支所指向的代码提交版本。

1.3 关系

分支保证开发者可以在主线(master)之外进行开发工作,并且不影响主线代码。因为主线和分支是两个独立的代码线,这样,你可以在一个分支上尝试新功能、修复bug或进行其他任何类型的开发,而不必担心破坏主线的稳定性。

2.创建分支

2.1 创建主分支

对于个人项目来说 一个主分支就够用,在每次提交时创建一个commit节点

$ git commit -m "节点名"

2.2 创建功能分支

项目有新的功能需要开发时,应该先创建功能分支,并切换到该分支

$ git checkout -b [分支名]

3.合并

3.1 介绍

git merge一共有三种模式 git merge --ff, git merge --no-ff, git merge --ff-only

  • –ff自动合并:当合并的分支为当前分支的后代,会自动执行–ff,若不匹配则执行–no-ff合并。
  • –no-ff非Fast-forward模式:在任何情况下都会创建新的commit多方合并(即使被合并的分支为自己的直接后代)。
  • –ff-only:只会按照 Fast-forward 模式进行合并,如果不符合条件(并非当前分支的直接后代),则会拒绝合并请求并且退出。

3.2 快速合并

当前分支开发完成后需要合并到主分支,通过提交命令直接向主分支提交代码

$ git checkout master #切换至主分支
$ git merge [分支] #将开发的分支合并到主分支

3.3 非快速合并

在进行非快速合并时,需要创建commit节点

$ git merge --no-ff [分支名]

4.Git冲突解决

4.1 冲突发生

当同一个文件被两个分支修改过,在合并这两个分支时就会发生冲突。

4.2 冲突修正

  • 将两个分支文件进行对比修改,满足两个分支的提交。
  • 使用 git addgit commit进行提交(此时提交的是master分支)。
  • 再次合并

5. BUG分支

5.1 描述

开发者在某个分支上工作,突然有一个紧急BUG需要修复,此时需要使用stash功能,先将当前正在工作的现场存储起来,等BUG修复后再继续工作。

5.2 操作流程

  • 存储工作现场
git stash
  • 切换至BUG分支
git checkout [出现bug的分支]
  • 添加一个BUG临时分支
git checkout -b bug01
  • 修复完成后切换回主分支
git checkout master
  • 合并BUG分支到主分支
git merge --no-ff -m '分支合并' bug01
  • 返回之前工作现场
git checkout dev
  • 查看当前分支保存那些工作现场(之前封冻存储的工作现场)
git stash list
  • 恢复存储现场
git stash pop

http://www.ppmy.cn/ops/97745.html

相关文章

【Python】循环语句(while、for)、continue、break

文章目录 条件语句什么是条件语句语法格式缩进和代码块空语句练习1. 输入一个整数,判断是否是奇数2. 输入一个整数,判断是正数还是负数3. 判断年份是否是闰年 循环语句while 循环for 循环练习1. 打印 1-10 的整数2. 计算 1-100 的和3. 计算 5 的阶乘4. 求…

逻辑回归解密:原理、公式和优化全解析

文章目录 一、 前言二、逻辑回归的原理和基本公式1. 逻辑回归的原理核心函数:Sigmoid函数 2. 逻辑回归模型3. 梯度上升法参数估计:最大似然估计对数似然函数求导过程参数更新 4. 梯度下降法参数估计:最小化损失函数逻辑回归的负对数似然函数梯…

FFmpeg的入门实践系列二(基础知识)

欢迎诸位来阅读在下的博文~ 在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力 文章目录 前期博客一、视频录制和播放原理二、数字图像的存储方式RGB方式YUV格式 三、描述视频属性的基本概念四、IPB帧五、音频的…

【jvm】如何理解栈管运行堆管存储

目录 一、栈(Stack)管运行1.1 说明1.2 方法调用1.3 局部变量1.4 控制流 二、堆(Heap)管存储2.1 说明2.2 对象存储2.3 垃圾回收2.4 动态扩展 三、总结 一、栈(Stack)管运行 1.1 说明 1.栈主要管理的是方法的…

新建vue项目时> In dedicated config files和 In package.json的区别

‌In dedicated config files和In package.json的主要区别在于配置文件的组织和可读性。‌ ‌In dedicated config files‌:每个配置文件都单独放置,这意味着不同的配置(如ESLint、Babel等)被保存在各自的配置文件中。这种方式使得…

raksmart站群服务器多IP配置要求

RakSmart是一家提供多种服务器解决方案的服务商,其中包括针对站群服务的多IP服务器。这类服务器特别适合那些需要大量独立IP地址的业务,例如站群、多域名托管等。下面我们就来了解一下RakSmart站群服务器的多IP配置要求及相关信息。 什么是站群服务器? …

ant design pro 如何去保存颜色

上图 就是实现这样的效果 后端是这样的,这个颜色肯定是存到字符串里的 这是第一步 import mongoose, { Schema, Document } from mongoose;interface IDiscountCard extends Document {title: string;subtitle: string;image: string;shopUrl: string;bgColor: s…

2024年下半年,单独划定的地区报名软考的温馨提示

软考分数线分为全国分数线、省分数线(陕西省下半年已取消,仅剩青海省)、以及单独划线地区分数线。目前各地2024年下半年软考正在接受报名,请单独划线地区的考生注意——有些地区可能要求考生在考试后进行单独划线申请,…