大模型之git操作(第五章)

5Git分支操作

5.1****什么是分支

几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作
从开发主线上分离开来,以免影响开发主线。

5.1.1Git 的 master 分支的理解:

master 分支并不是一个特殊分支,它跟其它分支没有区别。 之所以几乎每一个仓库都
有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它,是默认分
支。

5.1.2实际开发的场景:

在版本控制过程中,同时推进多个任务,为每个任务创建一个单独分支。每个程序员在
自己的分支里写代码,开发完成后提交。小组长负责合并分支到主干 master、测试、发布新
版本。

使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,
不会影响主线分支的运行。
对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。

5.2****分支的好处

  • 同时并行推进多个功能开发,提高开发效率。
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。 失败的分支删除重新开始即可。

5.3****分支的操作

5.3.1****查看分支

1**)基本语法**
git branch -v

2**)使用举例**


此时只有一个分支。

5.3.2****创建分支

1**)基本语法**
git branch****分支名

2)使用举例

说明:因为 hot-fix 分支是从 master 分支拷贝过来的,所有后面的 id 是相同的。

5.3.3修改master****分支

1**)在master分支上做修改**

2**)添加暂存区**

3**)提交本地库**

4**)查看分支**

说明:此时两个分支的 id 版本不同了。

5**)查看master分支上的文件内容**

5.3.4****切换分支

1**)基本语法**
git checkout****分支名

2**)使用举例**

  • 分支由 master 改为 hot-fix
  • 查看 hot-fix 分支上的文件内容发现与 master 分支上的内容不同

  • 创建分支和切换分支图解:

Master、Hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 Head
决定的。
Head 如果指向 master,那么我们现在就在 Master 分支上,Head 如果执行 Hot-fix,那
么我们现在就在 Hot-fix 分支上。
所以切换分支的本质就是移动 Head 指针

5.3.5 修改子分支

1**)在hot-fix分支上做修改**

2**)添加暂存区**

3**)提交本地库**

注意:此时 master 分支和 hot-fix 分支是独立的两套代码。

5.3.6****合并分支

1**)基本语法**
git merge****分支名
说明:在当前分支下,将其它分支的代码合并过来。

2**)使用举例**

  • 切换回到 master 分支
  • 在 master 分支上合并 hot-fix 分支


如果 master 或 hot-fix 分支只有一个分支修改过,则合并不会出现冲突;如果两个分支
都各自修改过同一份文件,则合并会出现冲突。

5.3.7****产生冲突

1**)冲突产生的表现:后面状态为****MERGING**

2**)冲突产生的原因:**
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替
我们决定使用哪一个。必须手工解决新代码内容。

3**)查看状态(检测到有文件有两处修改)**

5.3.8解决冲突(三步骤)

1**)步骤1:编辑有冲突的文件**
这里手动编辑并处理有冲突的文件。
具体操作:删除特殊符号,决定要使用的内容
特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

编辑冲突的文件,把">>>>>>>>>"、"<<<<<<"和"========"等这样的行删除,
编辑至满意的状态,提交。
2**)步骤2:添加到暂存区**

3**)步骤3:执行提交**

提交后,发现后面 MERGING 消失,变为正常。
注意:此时使用 git commit 命令时不能带文件名。因为我们解决冲突,可能存在于多个
文件中,这里就不能也不需要指定具体的文件名了。

5.3.9****如何避免冲突

  • 各人维护各人的代码分支,要避免多个人在各自分支上修改同一个文件。
  • 避免在 master 分支上写代码。

在一个项目中,配置类和工具类是可能被多人多个子模块共享的,都修改的话,怎么避
免冲突?回答:尽量由一个人进行统一的维护。修改好后,其他人来更新即可。

5.4****小练习

程序员猴子的 Git 使用经历:

拓展功能:git stash (不常用)

相关推荐
玄芯散人2 小时前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人6 小时前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅7 小时前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人7 小时前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr10 小时前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林10 小时前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器
烛之武11 小时前
Git教程笔记
git·gitee
Sharewinfo_BJ11 小时前
PBIP项目结构与文件解析
git·powerbi·智信bi·上北智信
Hvitur1 天前
Linux安装Git【离线安装】
git
howard20051 天前
6.4 Git安装与配置
git·安装配置