【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


目录
打赏
0
0
1
0
10
分享
相关文章
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
62 9
图解Git——分支简介《Pro Git》
Git 分支是其核心特性之一,允许开发者从主开发线分离工作,避免干扰主线。传统版本控制系统创建分支效率低,而Git的分支创建和切换非常轻量高效。
135 9
vscode+git解决远程分支合并冲突
通过这些详细步骤,您可以掌握如何使用VSCode和Git高效地解决远程分支合并冲突,提高开发效率和代码质量。希望这些内容对您的学习和工作有所帮助。
301 86
图解Git——分支管理《Pro Git》
分支管理是 Git 中的重要机制,支持并行开发和清晰的工作流。常用命令包括:`git branch` 列出所有分支,`git branch -v` 查看最后一次提交,`git branch --merged` 和 `git branch --no-merged` 分别查看已合并和未合并的分支。创建新分支用 `git branch &lt;branch-name&gt;`,删除分支用 `git branch -d`(已合并)或 `-D`(强制删除)。建议定期清理已完成任务的分支,保持代码库整洁,并使用有意义的分支命名规范。注意强制删除未合并分支时可能丢失数据。
40 5
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
105 7
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
46 6
【Git】—— 分支管理策略
【Git】—— 分支管理策略
144 0
【git分支管理策略】如何高效的管理好代码版本
【git分支管理策略】如何高效的管理好代码版本
680 0
git的分支的使用,创建分支,合并分支,删除分支,合并冲突,分支管理策略,bug分支,强制删除分支
git的分支的使用,创建分支,合并分支,删除分支,合并冲突,分支管理策略,bug分支,强制删除分支

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等