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 分支的概述

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

4.1.1 什么是分支

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

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:验证指针的指向(查看配置文件)

4.5 修改分支(改)

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

  • Step2:查看本地库状态

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

  • Step4:查看历史版本

4.6 合并分支(正常合并)

正常合并

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

基本语法

  • git merge 分支名

案例实操

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

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

  • Step2:合并分支

4.7 合并分支(冲突合并)

冲突合并

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

4.7.1 产生冲突的表现

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

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

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

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

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

4.7.2 产生冲突的原因

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

4.7.3 解决冲突的办法

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

<<<<<<< HEAD

当前分支的代码

=======

合并过来的代码

>>>>>>> hot-fix

  • Step7:添加到暂存区

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

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

小结

  • 三本质:
    • 分支(masterhot-fix)的本质就是指向具体版本记录的指针
    • 创建分支的本质就是多创建一个指针
    • 切换分支的本质就是移动 HEAD 指针
  • 当前所在的分支是由HEAD指针决定的,比如:
    • 如果HEAD指向master,那么我们现在就在 master 分支上。
    • 如果HEAD执行hot-fix,那么我们现在就在 hot-fix 分支上。
  • 36
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华科大胡子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值