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--分支管理策略相关推荐

  1. git使用指南及分支管理策略

    Git是什么? Git是一个开源的分布式的版本管理工具. 为什么要使用GIt? Git是目前世界上最先进的版本管理工具,尤其在分支管理上表现突出,能够极为方便地解决开发中的版本问题. Git如何使用? ...

  2. Git 分支管理策略

    分支管理策略 下面我们来说一下一般企业中开发一个项目的分支策略: 主分支 master 开发分支 develop 功能分支 feature 预发布分支  release bug 分支 fixbug 其 ...

  3. Git 企业中常用分支管理策略

    Git 企业中常用分支管理策略 一般企业中开发一个项目的分支策略 主分支 master 开发分支 develop 功能分支 feature 预发布分支 release bug 分支 fixbug 其它 ...

  4. 【Git学习笔记5】以普通模式合并(--no-ff)、push到远程库及分支管理策略

    一.以普通模式合并(--no-ff) 合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,啥?不记得啦?那等会我们学习完给你再举个栗子吧,看看这个f ...

  5. git master主分支_Git分支管理策略及简单操作

    前几天整理了一下之前项目的开发代码,当时使用了Git来进行代码版本管理.虽然本人熟悉常用的Git操作,但是对分支的管理经验非常欠缺.拿这个项目来说,在项目中有不下20个分支,每个分支间的继承关系相当之 ...

  6. Git学习系列(六)解决分支冲突及分支管理策略

    2019独角兽企业重金招聘Python工程师标准>>> 解决分支冲突 通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交. 下面咱们先创建一个分支并切换到b1分支: 修改咱 ...

  7. devops 分支管理策略_DevOps招聘策略以吸引顶尖人才

    devops 分支管理策略 我不经常和招聘人员交谈. 实际上,我通常不与第三方招聘人员合作,因为很多时候,他们只对填写一份工作要求,收取佣金并转到下一个职位感兴趣. 此外,大多数招聘人员并不真正了解具 ...

  8. Git进阶(五):git 分支管理策略

    文章目录 一.企业级项目分支策略 1.1 主分支 master 1.2 开发分支 develop 1.3 功能分支 feature 1.4 预发布分支 release 1.5 bug 分支 fixbu ...

  9. (GIT)代码分支管理策略

    一.我们采用的管理策略(分支开发主干发布) 1. 主分支(master),用于发布,每次发布时打一个(tag),不做任何开发使用 拉取源:无 合并目标:无 修改:不允许 生命周期:持续 2. 开发分支 ...

  10. **Git分支管理策略

    http://www.ruanyifeng.com/blog/2012/07/git.html 如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control S ...

最新文章

  1. CCS编译出错:缺少头文件的解决办法
  2. java 克隆对象工具类_关于dorado-core源码包中CloneUtils克隆工具类对对象进行克隆复制操作...
  3. 科大讯飞cordova语音插件填坑及api介绍
  4. hdu 5185(dp)
  5. Qt Example各例子演示功能说明
  6. 解决「matplotlib 图例中文乱码」问题
  7. 【转】Galileo伽利略项目-- 数字城市规划和基础设施建模
  8. ubuntu chrome下载地址
  9. Kali Linux零基础入门到精通
  10. 配置zigbee模块
  11. 【论文阅读】RegNet-Designing Network Design Space
  12. 用计算机写短文教学反思,《阿西莫夫短文两篇》教学反思6则
  13. 车载网络测试 - 车载以太网 - 网络配置方法
  14. 台式计算机如何上网设置,台式电脑怎样设置宽带自动连接?
  15. C# Serializable [转]
  16. 【SSL/TLS】准备工作:HTTPS服务器部署:Nginx部署
  17. *Java软件开发面试知识整理*
  18. 初识流媒体与流媒体技术
  19. 微型计算机储存系统一般指主存器和,2019年12月网络教育统考《计算机应用基础》复习题(八)...
  20. 笔试真题解析 | 4.15携程实习笔试三道编程题

热门文章

  1. java怎么自动提示关键词_Eclipse 实现关键字自动补全功能
  2. html5 键盘触发事件
  3. python goto 用法
  4. skycons.js 基于canvas的天气动态js插件
  5. Python-Numpy(3)矩阵基本操作
  6. 【keras】A `Concatenate` layer should be called on a list of at least 2 inputs
  7. WSL系列操作:安装,卸载
  8. 通俗易懂:快速理解ipv4的NAT穿透原理
  9. 动力节点的课堂笔记_男孩把历史笔记画成“漫画”,同学成小粉丝,网友:别人家的孩子...
  10. mybatis mysql方言_MyBatis 方言支持 - Mysql to 华为高斯数据库(gaussdb)