【Git】分支管理的基本操作

简介: 【Git】分支管理的基本操作

理解分支

分支管理是git的一个核心功能。在git中,分支是用来独立开发于某个功能或者修复某个bug的一种方式。就像是《火影忍者》中的鸣人使用分身去妙蛙山修炼,最后还能将所有的修炼经验返还给本体一样。git支持分支的同时,也支持将这些分支合并到master上了。

分支的本质

每一个分支都有一个指针指向最新的提交,就好比我们的master指向的就是主分支的最新提交。而HEAD指针指向的就是当前的工作分支。切换HEAD的指向,就相当于在切换分支。

主分支

Git 默认创建的第一个分支是 master 分支(或 main 分支)。它通常被认为是主要开发线的起点。所以我们说的主分支一般都是指master分支。

创建分支

考虑使用以下指令创建分支

git branch newbranch

创建一个名为newbranch的新分支

直接使用git branch可以查看当前分支:

查看.git/HEAD文件内容就能直到当前HEAD指向哪一个分支:

切换分支

使用git checkout指令切换当前分支,即切换HEAD指向的分支:

当我们成功切换分支之后,所有的提交都是在新的分支上。

注意,在新的分支上的提交是不会干扰master分支的,且也看不到后续master分支的提交信息----“你走你的,我走我的

合并分支

当我们试图将分支上的提交重新整合到master,即需要合并某个分支时,考虑git merge指令(切换到master分支执行):

git merge 命令⽤于合并指定分⽀到当前分⽀。合并后,master就能看到dev分⽀提交的内容了

fast-forward模式

fast-forward模式是分支合并时的一种简单情况,通常用于将一个分支的更改合并到另一个分支时。“Fast-forward” 合并的优点是简单快速,因为它只是移动指针而不需要额外的合并步骤。但它也有一个缺点,即不会保留合并操作的历史信息,因为合并操作并没有实际发生。

删除分支

考虑以下指令git branch -d devdev为要删除的分支:

注意如果现在就在dev分支下是不能删除dev分支的,需要先切换分支。

通常来说,我们一般合并完某个分支之后,会将这个分支删除。就像是创建子进程去完成任务回来之后,也就不需要它了。

合并冲突问题

分支合并并非每次都能成功,有的时候会发生合并冲突的问题。这种冲突一般是两个分支对同一个文件的同一个部分进行了修改,当要合并的时候git无法确定合并这些修改。

比如我们现在master分支下有一个readme文件,该文件内容为:

接下来我们创建一个dev分支,在master分支和dev分支中同时修改readme文件中的第二行内容并提交到版本库中。

master分支下:

master分支下:

接下来合并:

提示合并冲突,因为这时候两个分支对同一文件的同一行内容做出修改,git不知道该怎么合并。且readme文件会保留冲突信息,Git会⽤<<<<<<<,=======,>>>>>>>来标记出不同分⽀的冲突内容,如下所⽰:

这个时候只能手动编辑冲突的文件,将冲突的部分修改为满足需求的版本。可以将某个分支的修改删除,保留另一个。或者结合一下两者的修改。

解决冲突:

一定要提交修正后的结果

另外,用指令git log --graph --pretty=oneline --abbrev-commit可以较为形象的看到分支的合并情况:

相关文章
|
6月前
|
API 开发工具 git
《Git 简易速速上手小册》第3章:分支管理(2024 最新版)
《Git 简易速速上手小册》第3章:分支管理(2024 最新版)
97 1
|
6月前
|
开发工具 git
|
6月前
|
安全 开发工具 git
【Git】—— 分支管理策略
【Git】—— 分支管理策略
116 0
|
6月前
|
开发工具 git 开发者
git仓库分支管理
git仓库分支管理
|
1月前
|
开发工具 git
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
|
3月前
|
敏捷开发 小程序 持续交付
【规范】Git分支管理,看看我司是咋整的
本文介绍了Git分支管理规范的重要性及其在企业中的应用。通过规范化的分支管理,可加速团队协作、确保代码质量、维护主分支稳定,并支持敏捷开发。文中详细描述了主分支(如master、develop)和辅助分支(如feature、hotfix)的作用,并提供了实际开发流程示例,包括开发前、开发中、提测、预生产和部署上线等阶段的操作方法。旨在帮助团队提高效率和代码质量。
164 0
【规范】Git分支管理,看看我司是咋整的
|
6月前
|
开发工具 git
|
5月前
|
敏捷开发 测试技术 持续交付
【git分支管理策略】如何高效的管理好代码版本
【git分支管理策略】如何高效的管理好代码版本
466 0
|
6月前
|
开发工具 git
Git分支管理
Git分支管理
Git分支管理
|
6月前
|
数据可视化 持续交付 开发工具
实际项目中如何使用Git做分支管理
实际项目中如何使用Git做分支管理
123 1