Git011--分支管理策略
Git--分支管理策略
一。分支管理策略
通常,合并分支时,如果可能,Git会用Fast forward
模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward
模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
下面我们实战一下--no-ff
方式的git merge
:
首先,仍然创建并切换dev
分支:
$ git checkout -b dev Switched to a new branch 'dev'
修改readme.txt文件,并提交一个新的commit:
$ git add readme.txt $ git commit -m "add merge" [dev f52c633] add merge1 file changed, 1 insertion(+)
现在,我们切换回master
:
$ git checkout master Switched to branch 'master'
准备合并dev
分支,请注意--no-ff
参数,表示禁用Fast forward
:
$ git merge --no-ff -m "merge with no-ff" dev Merge made by the 'recursive' strategy.readme.txt | 1 +1 file changed, 1 insertion(+)
因为本次合并要创建一个新的commit,所以加上-m
参数,把commit描述写进去。
合并后,我们用git log
看看分支历史:
$ git log --graph --pretty=oneline --abbrev-commit * e1e9c68 (HEAD -> master) merge with no-ff |\ | * f52c633 (dev) add merge |/ * cf810e4 conflict fixed ...
可以看到,不使用Fast forward
模式,merge后就像这样:
二。分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先:master
分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev
分支上,也就是说,dev
分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev
分支合并到master
上,在master
分支发布1.0版本;
你和你的小伙伴们每个人都在dev
分支上干活,每个人都有自己的分支,时不时地往dev
分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
示例:
小结
Git分支十分强大,在团队开发中应该充分应用。
合并分支时,加上--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward
合并就看不出来曾经做过合并。
相关Git学习参考博客:
https://blog.csdn.net/xiaohanluo/article/details/53214933
Git教程,里面有介绍到Git的工作原理,可以仔细阅读。
Git Community Book 中文版介绍了Git具体使用,这本书也是关于Git的一本好书。
Git练习,实战练习Git的各种指令
转载于:https://www.cnblogs.com/kaixinyufeng/p/9062534.html
Git011--分支管理策略相关推荐
- git使用指南及分支管理策略
Git是什么? Git是一个开源的分布式的版本管理工具. 为什么要使用GIt? Git是目前世界上最先进的版本管理工具,尤其在分支管理上表现突出,能够极为方便地解决开发中的版本问题. Git如何使用? ...
- Git 分支管理策略
分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其 ...
- Git 企业中常用分支管理策略
Git 企业中常用分支管理策略 一般企业中开发一个项目的分支策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其它 ...
- 【Git学习笔记5】以普通模式合并(--no-ff)、push到远程库及分支管理策略
一.以普通模式合并(--no-ff) 合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,啥?不记得啦?那等会我们学习完给你再举个栗子吧,看看这个f ...
- git master主分支_Git分支管理策略及简单操作
前几天整理了一下之前项目的开发代码,当时使用了Git来进行代码版本管理.虽然本人熟悉常用的Git操作,但是对分支的管理经验非常欠缺.拿这个项目来说,在项目中有不下20个分支,每个分支间的继承关系相当之 ...
- Git学习系列(六)解决分支冲突及分支管理策略
2019独角兽企业重金招聘Python工程师标准>>> 解决分支冲突 通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交. 下面咱们先创建一个分支并切换到b1分支: 修改咱 ...
- devops 分支管理策略_DevOps招聘策略以吸引顶尖人才
devops 分支管理策略 我不经常和招聘人员交谈. 实际上,我通常不与第三方招聘人员合作,因为很多时候,他们只对填写一份工作要求,收取佣金并转到下一个职位感兴趣. 此外,大多数招聘人员并不真正了解具 ...
- Git进阶(五):git 分支管理策略
文章目录 一.企业级项目分支策略 1.1 主分支 master 1.2 开发分支 develop 1.3 功能分支 feature 1.4 预发布分支 release 1.5 bug 分支 fixbu ...
- (GIT)代码分支管理策略
一.我们采用的管理策略(分支开发主干发布) 1. 主分支(master),用于发布,每次发布时打一个(tag),不做任何开发使用 拉取源:无 合并目标:无 修改:不允许 生命周期:持续 2. 开发分支 ...
- **Git分支管理策略
http://www.ruanyifeng.com/blog/2012/07/git.html 如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control S ...
最新文章
- CCS编译出错:缺少头文件的解决办法
- java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...
- 科大讯飞cordova语音插件填坑及api介绍
- hdu 5185(dp)
- Qt Example各例子演示功能说明
- 解决「matplotlib 图例中文乱码」问题
- 【转】Galileo伽利略项目-- 数字城市规划和基础设施建模
- ubuntu chrome下载地址
- Kali Linux零基础入门到精通
- 配置zigbee模块
- 【论文阅读】RegNet-Designing Network Design Space
- 用计算机写短文教学反思,《阿西莫夫短文两篇》教学反思6则
- 车载网络测试 - 车载以太网 - 网络配置方法
- 台式计算机如何上网设置,台式电脑怎样设置宽带自动连接?
- C# Serializable [转]
- 【SSL/TLS】准备工作:HTTPS服务器部署:Nginx部署
- *Java软件开发面试知识整理*
- 初识流媒体与流媒体技术
- 微型计算机储存系统一般指主存器和,2019年12月网络教育统考《计算机应用基础》复习题(八)...
- 笔试真题解析 | 4.15携程实习笔试三道编程题
热门文章
- java怎么自动提示关键词_Eclipse 实现关键字自动补全功能
- html5 键盘触发事件
- python goto 用法
- skycons.js 基于canvas的天气动态js插件
- Python-Numpy(3)矩阵基本操作
- 【keras】A `Concatenate` layer should be called on a list of at least 2 inputs
- WSL系列操作:安装,卸载
- 通俗易懂:快速理解ipv4的NAT穿透原理
- 动力节点的课堂笔记_男孩把历史笔记画成“漫画”,同学成小粉丝,网友:别人家的孩子...
- mybatis mysql方言_MyBatis 方言支持 - Mysql to 华为高斯数据库(gaussdb)