2024新版Git教程 从入门到实战(三)Git分支管理_vs2024 git(1)


文章目录

分支工作的工作流程

这是从Git官网截取的一个片段

让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤:

  1. 开发某个网站。
  2. 为实现某个新的用户需求,创建一个分支。
  3. 在这个分支上开展工作。
  4. 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理:
  5. 切换到你的线上分支(production branch)。
  6. 为这个紧急任务新建一个分支,并在其中修复它。
  7. 在测试通过之后,切换回线上分支,然后合并这个修补分支,最后将改动推送到线上分支。
  8. 切换回你最初工作的分支上,继续工作。

Git分支管理

几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作

我们上一章的所有操作一直是在master分支上,版本切换能够让我们明显的认识到master分支是一个类似时间线的分支。
在实际的开发工作中不会直接在项目主分支上进行开发,一般都是新建一个或过多个开发分支,所有的开发都集中到开发分支上,当开发分支开发完成并通过测试就合并到主分支,以一个新的版本发布。

在这里插入图片描述

分支的好处
  • 同同时并行推进多个功能的开发,提高工作效率
  • 各个分支在开发过程中不影响,一个分支开发失败不会影响到其他分支,失败的分支直接删除重新开发就可以

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

前期准备

在一个空文件里面建立一个fish.txt文本文件,里面写一些内容,初始化本地仓库,提交到仓库
回顾一下命令的适用

git init
git add .
git commint -m'xxx'

准备结果
在这里插入图片描述

查看分支

查看已有的分支和当前所在的分支

git branch
# 或者
git branch -v

git branch命令会列出所有分支,当前分支前面会标一个*

分支创建

Git 是怎么创建新分支的呢? 很简单,它只是为你创建了一个可以移动的新的指针。 比如,创建一个 testing 分支, 你需要使用 git branch < name > 命令

git branch testing
# 此时创建一个名为testing的分支

git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去
此时两个指针(master,testing)指向相同的历史分支,这两个指针各自指向自己所在的分支
同时还有一个HEAD的指针,用来指明当前所在的分支,此时HEAD指向master就代表当前在master分支
在这里插入图片描述
使用git branch查看一下,*在哪里就代表当前在那个分支
在这里插入图片描述

分支转换

要切换到一个已存在的分支,你需要使用 git checkout 命令。 我们现在切换到新创建的 testing 分支去:

git checkout testing

另外因为git checkout既可以恢复工作树文件(撤销操作),又可以切换分支,这样可能会有一些歧义的出现,所以新版本建议适用git switch

git switch testing

通过括号里面的内容也可以进行判断
在这里插入图片描述

在新分支中添加记录

在新的分支中,在新文件家中添加内容‘testing’,并提交到仓库
此时会建立仓库中会出现一个新的记录,效果入下图
在这里插入图片描述

切换回master分支

在这里插入图片描述
此时HEAD指针指向了master,此时在查看fish.txt文件中的内容,就会发现内容已经恢复到原来未修改的状态
在这里插入图片描述

分支合并

我们现在分两种选择,

  • 一、直接将testing分支上的内容合并到master分支,这样不会发生版本冲突的问题
  • 二、在master分支上继续进行修改,然后再选择合并分支,这样会发生版本冲突的问题

我们先进行第一种直接合并分支

git merge testing # 把指定分支合并到当前分支

在这里插入图片描述
此时再查看fish.txt文件中的内容,就会发现原本再testing分支中修改的文件内容出现到了master分支中
这种master分支没有内容改变的合并不会出现冲突的问题。

第二种就是master分支和testing分支都进行了修改,此时在选择合并就会发生冲突
首先需要在在两个分支上分别修改并提交到版本库

  • 在testing分支下向文件中添加testing2222
    在这里插入图片描述
  • 在master分支下向文件中添加master2222

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

14222898718)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值