Git学习笔记(第4章):Git分支

目录

4.1 分支的概述

4.1.1 什么是分支

4.1.2 分支的好处

4.2 查看分支(查)

4.3 创建分支(增)

4.4 切换分支

4.5 修改分支(改)

4.6 合并分支(正常合并)

4.7 合并分支(冲突合并)

4.7.1 产生冲突的表现

4.7.2 产生冲突的原因

4.7.3 解决冲突的办法

小结


4.1 分支的概述

Git学习笔记(第4章):Git分支_第1张图片

        一般公司会有多个服务器,每个服务器的作用不尽相同,比如开发环境、测试环境、生产环境等。

4.1.1 什么是分支

        在版本控制过程中,有时需要同时推进多个任务。此时,我们可以为每个任务创建单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)

Git学习笔记(第4章):Git分支_第2张图片

4.1.2 分支的好处

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

命令

作用

git branch -v

查看分支(

git branch 分支名

创建分支(

修改分支(

git checkout 分支名

切换分支

git merge 分支名

合并分支(把指定的分支合并到当前分支上)

4.2 查看分支(查)

基本语法

  • git branch -v

案例实操

  • *代表当前所使用的分支

4.3 创建分支(增)

基本语法

  • git branch 分支名

案例实操

  • Step1:创建分支hot-fix

  • Step2:查看分支(当前处于master分支上)

4.4 切换分支

基本语法

  • git checkout 分支名

案例实操

  • Step1:切换分支

  • Step2:查看分支(当前处于hot-fix分支上)

  • Step3:验证指针的指向(查看配置文件)

Git学习笔记(第4章):Git分支_第3张图片

Git学习笔记(第4章):Git分支_第4张图片

Git学习笔记(第4章):Git分支_第5张图片

Git学习笔记(第4章):Git分支_第6张图片

4.5 修改分支(改)

Git学习笔记(第4章):Git分支_第7张图片

  • Step1:修改hot-fix分支上的文件
    • 第一行:10个2修改为5个2
    • 第二行:10个3修改为5个3

Git学习笔记(第4章):Git分支_第8张图片

Git学习笔记(第4章):Git分支_第9张图片

  • Step2:查看本地库状态

Git学习笔记(第4章):Git分支_第10张图片

  • Step3:添加到暂存区、提交到本地库

Git学习笔记(第4章):Git分支_第11张图片

Git学习笔记(第4章):Git分支_第12张图片

  • Step4:查看历史版本

Git学习笔记(第4章):Git分支_第13张图片

4.6 合并分支(正常合并)

正常合并

  • master分支不做修改,hot-fix分支做了修改
  • 在master分支上合并hot-fix分支

基本语法

  • git merge 分支名

案例实操

要求:在master分支上合并hot-fix分支

  • Step1:切换分支(将当前分支切换回master分支)

Git学习笔记(第4章):Git分支_第14张图片

Git学习笔记(第4章):Git分支_第15张图片

  • Step2:合并分支

Git学习笔记(第4章):Git分支_第16张图片

Git学习笔记(第4章):Git分支_第17张图片

Git学习笔记(第4章):Git分支_第18张图片

4.7 合并分支(冲突合并)

冲突合并

  • master分支和hot-fix分支同时做了修改
  • 在master分支上合并hot-fix分支

4.7.1 产生冲突的表现

  • Step1:修改master分支 → 添加到暂存区 → 提交到本地库

Git学习笔记(第4章):Git分支_第19张图片

Git学习笔记(第4章):Git分支_第20张图片

Git学习笔记(第4章):Git分支_第21张图片

  • Step2:从master切换到hot-fix分支

  • Step3:修改hot-fix分支 → 添加到暂存区 → 提交到本地库

Git学习笔记(第4章):Git分支_第22张图片

Git学习笔记(第4章):Git分支_第23张图片

Git学习笔记(第4章):Git分支_第24张图片

Git学习笔记(第4章):Git分支_第25张图片

  • Step4:从hot-fix分支切换到master分支

  • Step5:在master分支上合并hot-fix分支
    • 冲突(内容):在 hello.txt 中发生合并冲突
    • 自动合并失败;解决冲突,然后提交结果。
    • 产生冲突的表现:后面状态为MERGING(正在合并中,表明还未合并完成)

Git学习笔记(第4章):Git分支_第26张图片

4.7.2 产生冲突的原因

        合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。

4.7.3 解决冲突的办法

  • Step6:编辑有冲突的文件,删除特殊符号(见下),决定要使用的内容

<<<<<<< HEAD

当前分支的代码

=======

合并过来的代码

>>>>>>> hot-fix

Git学习笔记(第4章):Git分支_第27张图片

Git学习笔记(第4章):Git分支_第28张图片

Git学习笔记(第4章):Git分支_第29张图片

  • Step7:添加到暂存区

Git学习笔记(第4章):Git分支_第30张图片

  • Step8:提交到本地库
    • 1:此时使用git commit命令时不能带文件名,否则会报错

Git学习笔记(第4章):Git分支_第31张图片

Git学习笔记(第4章):Git分支_第32张图片

  • 2:在master分支上合并hot-fix分支,只会对master分支产生影响,而hot-fix分支不受影响。

Git学习笔记(第4章):Git分支_第33张图片

小结

  • 三本质:
    • 分支(masterhot-fix)的本质就是指向具体版本记录的指针
    • 创建分支的本质就是多创建一个指针
    • 切换分支的本质就是移动 HEAD 指针
  • 当前所在的分支是由HEAD指针决定的,比如:
    • 如果HEAD指向master,那么我们现在就在 master 分支上。
    • 如果HEAD执行hot-fix,那么我们现在就在 hot-fix 分支上。

你可能感兴趣的:(Git,GitHub,Gitee,GitLab,git,学习,笔记)