分支管理

我们在上一篇博客分支的基本操作当中已经学会了,创建,查看,切换,合并,删除一个分支, 那么既然我们拥有了基础的知识之后
,那我们需要如何实际运用分支呢? 那么在这个博客我们就能够找到答案. 通常,合并分支时,如果可能的话,GIT会用
Fast forword模式,但是在这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模式,Git就会在merge时生成一
个新的commit,这样,从分支历史上就可以看出分支的信息. 
然后我们可以直接先使用文字,陈述一下我们的过程,首先我们创建一个MT分支: $ git checkout -b MT 然后在分支上面修改
liang.txt文件,然后进行git add和git commit操作,然后切回主分支master,准备合并dev分支,请注意--no-ff参数,表示禁用
Fast forward 然后在程序运行结束后我们再使用git log指令查看分支的历史情况,所以过程就是这样,我们来看看代码实现:
其实这里我们只需要注意合并前的最后一行即可. 不使用Fast forward模式的话,merge之后就是这样了:
我们在实际开发当中,首先master分支应该是非常稳定的,也就是仅仅用来发布新版本,平时不能在上面干活; 干活都在另外一个备
用的稳定分支之上先叫他develop分支,平时都是这样比如要发布3.0版本时,先把develop分支合并到master分支上面,然后在master
分支之上发布3.0版本.然后平时在公司,你和你的程序猿朋友们都拥有各自的分支,当你写好代码你就往develop上面添加就OK了.所
以团队合作的分支就像是下面这个图片:

bug分支

我们现在没写过多少程序也会发现,程序的bug简直就跟吃饭一样,闲了没事了就来一个BUG. 所以你这整个分支上肯定会不定时的出
现各种各样的bug这个时候,GIT岂能坐视不管,由于分支功能很强大,所以有bug我们完全可以通过一个新的临时的分支来修复,修
复后,合并分支,然后将临时的分支删除. 举个例子现在你在你自己的分支里面正在工作,然后你的老板突然打电话过来说master分支
上面你负责的哪一个板块出现了bug,快赶紧过去抢修,这个时候你就得马上放下手头的工作去修bug,但是我的工作这才写了一半,
这里不用担心. 我们GIT有一个stash功能,可以把工作现场"储存"起来,等以后恢复现场之后继续工作:  $ git stash
好了,我们现在过来修改bug了,其实我们在上面那个图当中其实已经可以看到修改bug的过程了,具体就分为下面这几步:
假定我们在master分支上面修复,就从master创建临时分支bug-001. 然后修改bug,在文件中操作知道bug消除. 然后在该分支上面
git add和git commit,然后,切换回master分支,然后把bug-001分支合并到master分支上,这个时候master上面的bug解除了.
 最后删除掉bug-001分支. 
当然工程当中都是类似的修改bug方式,只是我的这个是在本地库修改. 然后当我们修改完bug.我们重新开始回到自己的分支上面干
活,刚刚我们使用$git stash 保存了工作现场. 我们可以使用$git stash list查看stash存储的工作现场.  接下来我们使用指令
进行工作现场恢复:
$git stash apply //恢复现场,但是stash存储工作现场内容不删除
$git stash deop  //删除git当中,stash指令存储的工作现场.
还有一种方式就是使用: $ git stash pop,//恢复的同时把stash内容也删了.
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除. 但手头工作没有完成时,先把工作现场
git stash一下,然后修复bug,修复后再git stash pop,回到工作现场.

Feature分支

软件开发当中,总会有新的功能需要添加进来这个时候. 添加一个新功能时,你肯定不希望因为一些实验性质代码,把主分支搞乱了
所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后删除该feature分支.
从我上面那个图可以看出,创建一个feature分支的时候,其实跟bug分支没有什么区别,所以我们代码演示这个过程:
其实我们看到feature分支实现我们很容易理解的,我们只需要知道它的应用场景. 以及它的用法. 不过当你开发出新功能之后,你的
组织上面突然有发现了新功能的致命缺点,然后就让不要去往主分支上面合并了. 那你就只能删除这个分支了. 不过在GIT上面我们新
创建的分支没有合并之前是没有办法删除的. 所以我们需要一条大招指令: $git branch -D xxx   //强行删除
所以要丢弃一个没有被合并过的分支,可以通过git branch -D xxx 进行强行删除...


安利一个网站:http://www.bageyalu.com/

GIT教程 — 分支管理(二)相关推荐

  1. Git 代码分支管理 / 版本管理

    Git 代码分支管理 / 版本管理 在使用 Git 时,基本不可能只有一个分支. 即使只有一个人发开,也会考虑代码的安全而分多个分支.多人协同开发时,可能每个人在不同的分支开发,也可能不同团队在不同的 ...

  2. linux下git分支管理,git远程分支管理

    git远程分支管理 使用分支的原则 master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上 创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并 ...

  3. Git远程分支管理(四)

    本系列为个人学习Git参照廖雪峰老师的笔记 本文内容:Git远程分支管理 参考笔记: https://www.liaoxuefeng.com/wiki/896043488029600 文章目录 3 G ...

  4. Git实战(五)| 让工作更高效,Git的分支管理

    上一篇讲到Git的分支管理实操,在线合并和本地合并都进行了实操.毕竟:光说不练是假把式.而只练不整理,只能是傻把式了.分支管理到底如何进行管理呢? 先以GitLab上的一张经典的图打头,作为一个总体概 ...

  5. git的分支管理(详细版)

    git的分支管理 git所有分支之间彼此互不干扰,各自完成各自的工作和内容.可以在分支使用完后合并到总分支(原分支) 上,安全.便捷.不影响其他分支工作 查看当前工作在那个分支 git branch ...

  6. 【GIT-3】GIT 的基础教程 分支管理 fixbug分支 Featur 冲突处理 标签管理 操作

    2019独角兽企业重金招聘Python工程师标准>>> [转载请注明出处!http://my.oschina.net/u/2337744/] 分支就是科幻电影里面的平行宇宙,当你正在 ...

  7. 实际项目中如何使用Git做分支管理

    [版权申明] 非商业目的注明出处可自由转载 出自:shusheng007 相关文章 Git日常开发常用命令汇总 文章目录 前言 概述 Git的基本使用方法 使用Git管理项目的方式 主分支 支持分支 ...

  8. 139.00.005 Git学习-分支管理

    @(139 - Environment Settings | 环境配置) 一.Why? 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交, ...

  9. Git 之四 分支管理

    写在前面   Git 的官网上有很详细的使用教程(当然有翻译版本),具体地址是 https://git-scm.com/book/zh/v2.唯一不足就是,很多讲解并没有实机演示.但是,毫无疑问,官网 ...

最新文章

  1. Nature:功能微生物组研究典范—采用甘露糖苷选择性抑制尿路致病性大肠杆菌...
  2. 洛谷——P1183 多边形的面积
  3. Scrapy匹配xpath时tbody标签的问题
  4. vscode 推荐premiter_自用VSCode优质插件推荐
  5. 用java写jsp页面跳转页面跳转_五种 JSP页面跳转方法详解
  6. 又一个时代结束了!Adobe宣布在2020年彻底停止Flash更新
  7. 21-win10下ElasticSearch.6.1.0安装SQL插件
  8. java match parent_java.lang.IllegalStateException: The specified child already has a parent
  9. python都有哪些变量_Python变量作用域有哪些
  10. php表单yii2,yii2教程-ActiveForm表单组件
  11. SQL Server 2008安装和配置图解图(转)
  12. linux系统live管理界面,live-系统爱好者
  13. 家用路由器与企业路由器有什么区别
  14. Encoder-Decoder综述理解(推荐)
  15. 关系数据库范式及1NF、2NF、3NF和BCNF
  16. 自我介绍 and 阅读感想
  17. JVM GC调优--增大Eden Space提高性能
  18. 管家婆软件分销ERP D9学习资料
  19. 《学术研究,你的成功之道》
  20. Selenium Java自动化测试环境搭建

热门文章

  1. 别人的 阿里校招 面试总结
  2. Slingshot|单细胞轨迹推断r包
  3. 【slingshot and tradeSeq】differential analysis between different lineages
  4. 我获得了CSDN的微软博客达人优秀奖
  5. 好莱坞技术狂欢 视觉操控者带你进入未来模式
  6. 有了开源ROS,机器人就能自由行走?
  7. 【PythonPlanet】数据清洗原则:完全合一
  8. 家用防盗器防盗系统解决方案
  9. WindowsSockets套接字编程学习-C语言
  10. 双象空间前方交会代码_空间前方交会公式推导.PPT