神一样膜拜此链接下http://nvie.com/posts/a-successful-git-branching-model/对git branch模型管理,以下为我的学习心得:
一、branch动态存在形式
开发阶段: master -> develop -> feature
测试阶段: master -> hotfixes -> develop -> master
发布阶段: develop -> master, 用master分支代码进行发布,release-**或tag则为保存版本。比如:release-1.1.1, tag命名看为1.1.1。因此,可推断master分支永远指向最新的发布版本,通过master分支生成的release分支和tag,用于保存历史版本。
有个小疑惑,既然有了release-**保存版本,为何又在master分支上加tag,同样是去保存历史版本呢?
二、用bitrise打包场景下的应用
新建一个bitrise branch,专门用于build吗?发布前,它会尝试修改两个东西:build version和build number。考量:build version是由产品定义,build number只是用于bitrise管理的,外部来看似乎它没用。
或者直接在master分支上打包?
肯定不能在develop分支上打包,开发会修改,打包的时候也会尝试修改一些东西。
三、Get到的几个很不错的git命令
git merge --no-ff myfeature 保留myfeature提交结点的merge
git checkout -b release-1.2 develop 创建release-1.2分支,并checkout到此分支