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


    在这里插入图片描述

    🤵‍♂️ 个人主页: @AI_magician
    📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
    👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍
    🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

    在这里插入图片描述

    该文章收录专栏
    [✨— 《深入解析git:从原理到应用的全面指南》 —✨]

    👋👋欢迎来到👋👋
    🎩魔术之家!!🎩

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

    分支是什么?

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

    查看分支

    git branch
    
    • 1

    在这里插入图片描述
    #创建分支

    git branch 自定义名称
    
    • 1

    可以看到创建成功
    在这里插入图片描述

    查看创建分支版本

    git log
    
    • 1

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

    git-log
    
    • 1

    在这里插入图片描述

    这里的HEAD - > 什么意思呢, 是指向对应分支的意思
    假如多个分支,我们只能对当前分支进行修改,不能同时多个分支修改

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

    git add .
    git commit -m "添加 。ignore"
    
    • 1
    • 2

    在这里插入图片描述
    可以看到我们的提交是提交到主分支 master, 对分支demo01没有影响,
    那么在分支demo01是没有所提交的.ignore文件的
    在这里插入图片描述

    切换分支

    git checkout demo01
    
    • 1

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

    git-log
    
    • 1

    可以看到HEAD – > 指向了当前分支demo01
    在这里插入图片描述
    此时文件是没有之前所添加的.ingore文件
    在这里插入图片描述
    切换回主分支,可以看到之前添加的.ingore文件存在
    在这里插入图片描述

    创建分支并切换

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

    git checkout -b demo02
    
    • 1

    在这里插入图片描述

    *合并分支

    git merge 分支名
    
    • 1

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

    为了显示合并的效果,我们在demo01分支创建文件 file.txt
    看合并后,会不会新增file.txt文件

     touch file.txt
    
    • 1

    如图我们合并demo01在这里插入图片描述

    弹出提示框(vi 编辑框) 按Esc输入:wq 退出vi编辑
    在这里插入图片描述

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

    删除分支

    注意:

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

    命令

    git branch -d 分支名称   注释:在删除时,需要做各项检查,安全删除
    git branch -D 分支名称   注释:不做任何检查,暴力删除 
    
    • 1
    • 2

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

    git branch -d demo01
    
    • 1

    解决冲突

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

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

    如图对demo3分支,同理对master主分支
    在这里插入图片描述
    查看日志
    在这里插入图片描述

    进行合并,报错:
    在这里插入图片描述
    打开修改的file01.txt 文件
    在这里插入图片描述

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

    解决方法

    步骤:

    • 处理文件中冲突的地方(不修改就会原样上传)
    • 将解决完的文件加入暂存区(add)
    • 提交到仓库

    简单粗暴,只需要删掉不需要的值即可,或者修改为你想要的也可以
    在这里插入图片描述

    接着提交修改

    git add .
    git commit  注释:这里可以加上 -m 说明冲突消息,也可以不加 -m  会有下图提示效果
    
    • 1
    • 2

    在这里插入图片描述
    查看日志
    在这里插入图片描述

    此时file01.txt 文件内容也是我们所修改的
    在这里插入图片描述

    在这里插入图片描述

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

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

    • master (生产) 分支
      线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
    • feature/xxxx分支
      从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支
    • hotfix/xxxx分支,
      从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支。(bug其他版本也要修改)

    在这里插入图片描述

    在这里插入图片描述

    						  🤞到这里,如果还有什么疑问🤞
    					🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
    					 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
    
    • 1
    • 2
    • 3
  • 相关阅读:
    【性能测试】Jmeter+InfluxDB+Grafana 搭建性能监控平台
    popen() 获取 ping 命令结果&解析
    01-shell编程规范与变量
    第十二章 pytorch中使用tensorboard进行可视化(工具)
    CentOS6/7 配置守护进程
    【LeetCode-中等题】 151. 反转字符串中的单词
    vue的axios是干什么的
    idea彻底卸载安装及配置笔记
    算法day31|455,476,53
    java多线程基础——Callable接口及线程池补充
  • 原文地址:https://blog.csdn.net/weixin_66526635/article/details/133804628