原文地址:http://www.jiangyouxin.net/2013/02/11/git_flow.html
在github的项目主页上是这么介绍的:(git flow is) Git extensions to provide high-level repository operations for Vincent Driessen’s branching model. 这个Vincent Driessen’s branching model的原文在http://nvie.com/posts/a-successful-git-branching-model/
简单翻译一下。git flow是用来实现某种分支模型上的操作的
两个主(main)分支:
master:指向当前已发布版本
develop:指向当前开发状态
三类支持(support)分支:
feature分支:从develop创建,用于某个功能点的开发。完成时自动合并到develop。
release分支:从develop创建,用于某个版本发布前的提测和修改BUG。完成时自动打TAG,合并到master和develop。
hotfix分支:从master创建,用于已发布版本的快速BUG FIX,完成时自动打TAG,合并到master和develop(若当前存在release分支,则合并到该分支而不是develop)
“创建”和“完成”操作都由对应的git flow命令来实现。命令很容易记忆:
git flow <feature|release|hotfix> <start|finish> <name>
下面这张图是从原文COPY出来的:
使用git flow,每一个feature独立在支线开发,完成后再合并到主线;发布版本在支线完成,与功能开发可以并行;打TAG的同时Merge修改回主线。以上这些都深得我心,而且它是靠工具(而不是规章制度)来实现的,对程序员比较友好。
git flow把所有的发布版本串联在master分支上,很好地维护了它们之间的偏序关系(master分支上的每一次提交都对应一个发布版本),这样可以很方便将master作为“卖主分支”来管理OEM;与topgit等结合也会很方便。
git flow的hotfix分支只能基于master,也就是最新的发布版本。如果要基于更老一些的发布版本去擦屁股,就得手工操作了:从旧的TAG上创建branch,完事后打新TAG,然后合并回develop(或者当前release),注意这时候就不能合并到master了。
转载于:https://my.oschina.net/jiangyouxin/blog/108507
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110217.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...