【Git】一文带你入门Git分布式版本控制系统(分支管理策略、Bug分支)

简介: 【Git】一文带你入门Git分布式版本控制系统(分支管理策略、Bug分支)

一、分支管理策略

通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息。


如果要强制禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息。


下面我们实战一下 --no-ff 方式的 git merge

1、创建 dev 分支,修改 txt 并提交

我们创建新的 dev 分支,修改 txt 文件,推到暂存区并提交至本地仓库

46142569a8494d04beac809578e0c470.png

git checkout -b dev
git branch
git add readme.txt
git commit -m "add merge"

c7e9a4e5bd4241da842322f3ca2a0abc.png

2、切换至主分支并合并

切换到 master 主分支,准备合并(请注意 --no-ff 参数,表示禁用 Fast forward)

git checkout master
git merge --no-ff -m "merge with no-ff" dev

2d96125bd86f4ffa8376b496478e05db.png

3、查看分支历史

git log --graph --pretty=oneline --abbrev-commit

摘自 廖雪峰的官方网站

09994ffa54bf47809486e2a11769776f.png

0e6f4d26f970447aab9146348a3d4a99.png

二、Bug 分支

Bug 可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。


1、不具备提交条件的 dev 分支

当我们正在 dev 分支上进行工作还没有提交(并不是不想提交,而是工作了一半,没法提交),这时出现了一个要紧急修改的 Bug,我们便可以使用 stash 功能,把当前工作现场“储藏”起来。

git branch
git status

43ab70b49f144768a533df33bbd5f64b.png

2、储藏工作现场

我们使用 stash 把当前工作现场(未完成的 dev 分支)储藏起来,之后查看状态(很干净)

git stash
git status

275b01d7e9f34882bd8e250be2ef9b3b.png

3、修复 Bug

假定我们要在 master 分支上修复 Bug(代号 101)

我们要进行以下 Bug(代号 101)的修改

55a0b7a686c64e30b92bb2c29839d077.png

9fce1982063742ea9b01ecc81f37b4e3.png

我们首先切换到 master 分支,之后创建一个临时分支 issue-101,并提交

9ffd98dc1c47467b8c0f14983e62ce4d.png

切换至 master 分支,合并

至此,Bug 修复完成

git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101

ca5f8ad9a11b4280bee4458668fa7d40.png

4、恢复 dev 分支

我们先切换到 dev 分支,查看当前状态

git checkout dev
git status

e51ee8c880804ad1a8ab9ec86a0ae6ed.png

Git 把 stash 存放在某个位置了,我们需要找回工作现场 dev 分支

669dcd2f2a6145288c701b00d3a981b0.png

之后我们需要对其进行恢复(两种方法)

方法一:用 git stash apply 恢复,但是恢复后,stash 内容并不删除,我们需要用 git stash drop 来删除

方法二:用 git stash pop,恢复的同时把 stash 内容也删了

7495b81c0e9349e6ac4067f68eae49d1.png

之后删除 issue-101 分支,查看当前分支情况(要丢弃一个没有被合并过的分支,可以通过 git branch -D <name> 强行删除)

8e7001e86a08405b9c8294bbae98c054.png

45fc82a82c6542bdb2ff4986377d8db3.png


相关文章
|
1月前
|
Linux 开发工具 git
【Git】Git 完全指南:从入门到精通
Git 是一种强大的版本控制工具,掌握了其基本命令和高级特性后,可以大大提高开发效率并方便团队协作。通过本篇文章,你已经学会了 Git 的核心命令及其使用方法,希望你能够灵活运用 Git 在实际项目中进行版本管理。
114 4
|
1月前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
84 4
|
2月前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
64 1
[Git]入门及其常用命令
|
29天前
|
运维 测试技术 持续交付
代码管理的艺术:你的团队是否还在为 Git 分支管理头疼?
本文回顾了作者从2~3人初创团队到百人技术团队的经历,分享了代码管理工具从无到SVN再到Git的演变。重点介绍了Git Flow和GitHub Flow两种常用的Git分支管理模型,分析了它们的适用场景和优缺点。Git Flow适合中大型项目,而GitHub Flow则更适合小型团队和Web应用开发。
64 0
|
2月前
|
开发工具 git
git分支管理master/hotfix/develop/feature/release
采用合理的Git分支管理模型可以显著提升团队协作效率和代码管理的质量。本文介绍的 `master`、`develop`、`feature`、`release`和 `hotfix`分支模型是一个行之有效的方法,适用于大多数软件开发项目。通过清晰地划分各个分支的职责,团队成员可以更专注于各自的开发任务,同时确保代码库的稳定性和可维护性。
91 2
|
3月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
159 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
2月前
|
测试技术 开发工具 git
掌握Git分支管理,提升团队协作效率
掌握Git分支管理,提升团队协作效率
46 0
|
3月前
|
开发工具 git
Git分支使用总结
Git分支使用总结
59 1
|
3月前
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
186 0
|
3月前
|
开发工具 git
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)