首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【版本管理 | Git】 一文详解关于分支的那些事,确定不来看看?

【版本管理 | Git】 一文详解关于分支的那些事,确定不来看看?

原创
作者头像
计算机魔术师
发布2023-10-13 10:10:24
发布2023-10-13 10:10:24
5320
举报
文章被收录于专栏:计算机魔术师计算机魔术师
在这里插入图片描述
在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician

📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。

👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍

🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

在这里插入图片描述
在这里插入图片描述

该文章收录专栏

[✨--- 《深入解析git:从原理到应用的全面指南》 ---✨]

@toc

<font size="3" color="#8bc8f2" style="行楷">👋👋欢迎来到👋👋

🎩魔术之家!!🎩</font>

书接上文,在第一天中,我们学会了git的基本概念和基础命令,接下来我们讲解重要的知识点 --- 分支

分支是什么?

几乎所有版本控制系统都以着不同形式支持分支,如SVM,分支是用于项发开发中从开发从主线分离出去,适用于修改bug,功能开发等,而不影响主线,每个开发人员等到开发完之后,再将分支合并merge到主分支master

查看分支

代码语言:c++
复制
git branch
在这里插入图片描述
在这里插入图片描述

#创建分支

代码语言:c++
复制
git branch 自定义名称

可以看到创建成功

在这里插入图片描述
在这里插入图片描述

查看创建分支版本

代码语言:c++
复制
git log
在这里插入图片描述
在这里插入图片描述

也可以用上一文章所别名的指令(这里的git-log是别名过的,见上一篇文章配置别名,或者使用git log 也可以)

代码语言:c++
复制
git-log
在这里插入图片描述
在这里插入图片描述

这里的HEAD - > 什么意思呢, 是指向对应分支的意思

假如多个分支,我们只能对当前分支进行修改,不能同时多个分支修改

接下来我们提交修改之前所修改的ignore文件,

代码语言:c++
复制
git add .
git commit -m "添加 。ignore"
在这里插入图片描述
在这里插入图片描述

可以看到我们的提交是提交到主分支 master, 对分支demo01没有影响,

那么在分支demo01是没有所提交的.ignore文件的

在这里插入图片描述
在这里插入图片描述

切换分支

代码语言:c++
复制
git checkout demo01

查看日志(这里的git-log是别名过的,见上一篇文章配置别名,或者使用git log 也可以)

代码语言:c++
复制
git-log

可以看到HEAD -- > 指向了当前分支demo01

在这里插入图片描述
在这里插入图片描述

此时文件是没有之前所添加的.ingore文件

在这里插入图片描述
在这里插入图片描述

切换回主分支,可以看到之前添加的.ingore文件存在

在这里插入图片描述
在这里插入图片描述

创建分支并切换

创建分支并且切换到该分支

代码语言:c++
复制
git checkout -b demo02
在这里插入图片描述
在这里插入图片描述

*合并分支

代码语言:c++
复制
git merge 分支名

在进行分支合并前应该先切换分支checkout到需要合并的分支并提交,

为了显示合并的效果,我们在demo01分支创建文件 file.txt

看合并后,会不会新增file.txt文件

代码语言:c++
复制
 touch file.txt

如图我们合并demo01

在这里插入图片描述
在这里插入图片描述

弹出提示框(vi 编辑框) 按Esc输入:wq 退出vi编辑

在这里插入图片描述
在这里插入图片描述
从图中可以看到,在修改分支时,*号指向分支,合并操作后分支回到主分支master(相当于两条线开发,然后回到一条线)
在这里插入图片描述
在这里插入图片描述

删除分支

注意:

分支删除不能删除当前所在分支,需要删除需要切换到其他分支

命令

代码语言:c++
复制
git branch -d 分支名称   注释:在删除时,需要做各项检查,安全删除
git branch -D 分支名称   注释:不做任何检查,暴力删除 

我们可以删除分支demo1,此时demo1已经合并了,

代码语言:c++
复制
git branch -d demo01

解决冲突

场景:如果有两个开发人员,修改了同一个文件同一块区域,那么合并时候就会发生冲突,此时需要人工解决冲突

我们可以看一个例子:新建分支demo3,并分别在master主分支和demo3分支修改同一文件的同一行.

如图对demo3分支,同理对master主分支

在这里插入图片描述
在这里插入图片描述

查看日志

在这里插入图片描述
在这里插入图片描述

进行合并,报错:

在这里插入图片描述
在这里插入图片描述

打开修改的file01.txt 文件

在这里插入图片描述
在这里插入图片描述

可以看到修改的内容冲突用 ====== 隔开,

解决方法

步骤:

处理文件中冲突的地方(不修改就会原样上传)

将解决完的文件加入暂存区(add) 提交到仓库简单粗暴,只需要删掉不需要的值即可,或者修改为你想要的也可以

在这里插入图片描述
在这里插入图片描述

接着提交修改

代码语言:c++
复制
git add .
git commit  注释:这里可以加上 -m 说明冲突消息,也可以不加 -m  会有下图提示效果
在这里插入图片描述
在这里插入图片描述

查看日志

在这里插入图片描述
在这里插入图片描述

此时file01.txt 文件内容也是我们所修改的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实际开发的分支使用原则和流程

实际开发 会有一些 关于分支开发的标准,一般有如下分支使用原则与标准

master (生产) 分支

线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;

feature/xxxx分支 从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支

hotfix/xxxx分支, 从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。(bug其他版本也要修改)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分支是什么?
  • 查看分支
  • 查看创建分支版本
  • 切换分支
  • 创建分支并切换
  • *合并分支
  • 删除分支
  • 解决冲突
  • 实际开发的分支使用原则和流程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档