开发一个版本,采用的发布流程:

(1).从master的最新代码拉取一个开发分支,在上面进行开发(这里假设开发分支为dev)

(2).在开发分支上不断地进行提交版本,期间,master也会有因为其他版本上线而不停有版本合并

(3).要发布的时候,把master代码重新合一遍到dev分支

(4).发布完成了,把dev的代码合到master

1.什么是分支

分支是一个commit对象链:一条工作记录线

git每一次提交版本,都会在该版本上存一个字段parent,记录的是上一个提交的版本号,这样就可以从一个提交的快照里拿到之前所有提交过的记录

2.新建分支是如何操作的

先了解2个重要的概念——HEAD和master:HEAD指向的就是当前分支(某个时刻你所处的分支),master指向提交

(1)创建分支之前,HEAD指向master

(2)创建分支dev,HEAD指针指向dev

与svn不同的是,svn创建分支会把全部内容拷贝一份,git创建分支只会创建一个指针

(3)开发的过程中,如果我们提交了代码,则指针情况是

(4)这个时候,假设master没有新的内容,而你的版本要发布了,则不需要从master上合代码到dev,发版完毕以后,要把dev分支的内容合到master,指针情况是

这种合并我们叫做fast-forward(快进,如果可能,合并分支git会使用这种模式,除非再合并时加上 --no-ff参数,这样就会多出一个commit_id)

(5)在我们要发版的情况下,一般的情况是,master有新提交,我们自己也有提交在上面,所以,一般的示意图是

(6)把master合到dev,准备发版(假设没有冲突,有冲突先解决)

(7)发布完成,代码从dev再合到master,见步骤(4)

最新文章

  1. linux mysql5.5安装与配置(转帖,在网上收集,自用)
  2. C#占位符和格式化字符串
  3. maven - pom.xml 聚合(父)工程 基本内容演示
  4. 转!!Java垃圾回收机制
  5. Environment 类
  6. C++为QLabel增加单击事件
  7. <Android>从窗口泄漏谈android:configChanges属性
  8. sharepoint 2013 userprofile 用户信息
  9. CentOS6.5利用Docker部署ShowDoc
  10. Oracle和Mysql语法异同整理笔记
  11. 初识KNN
  12. HDU3480-Division-斜率dp
  13. MysqL_select for update锁详解
  14. Testing - 软件测试知识汇总
  15. VUE2 第六天学习--- vue单文件项目构建
  16. 【mysql】表备份
  17. MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号;一般,表名与字段名都使用反引号。
  18. N! (大数,优化)
  19. ios app性能分析
  20. 为已编译的DLL附带强命名

热门文章

  1. Hadoop完全分布式模式安装部署
  2. JQuery浮动对象插件
  3. 小米ICPC第一场自闭记
  4. PyQt(Python+Qt)学习随笔:QTreeView树形视图的animated属性
  5. Day5 - 01 函数及函数的调用概念
  6. 三、LoadRunner卸载
  7. Hbase备份以及清表脚本
  8. springMVC项目中配置log4j.properties路径
  9. css 09-CSS案例讲解:博雅互动
  10. Flink批处理读写Hive