对Git Flow做点微创新 (1)
昨天写了Git Flow印象( http://www.jiangyouxin.net/2013/02/11/git_flow.html ),总体来说这是个不错的东西,与现在厂里的研发模型非常契合。所以打算稍稍做些修改,然后拿到厂里去推广。 今天做的修改(按老周的话,这叫“微创新”),是在git flow feature finish的时候,提供一个选项,可以将所有修改合并为一个commit提交到develop分支上;feature分支本身的提交历史不再保留。 为什么需要这样一个选项?首先当前的git flow在将feature分支向develop合并的时候,使用了--no-ff,强制生成了一个merge结点。见下图(左): 左图通过merge结点来确定feature之间的边界 —— 如果不使用--no-ff就会形成右图(类似SVN的线性提交历史),日子一久就分不清哪些提交属于同一个feature了。 这已经很好了,但仍不是最好。事实上,feature分支的原始提交历史,很多情况下是无用的。比如说在我厂推广git flow时,feature分支将伴随某个功能“开发 + 测试”的全过程,上面的提交历史体现的是开发和BUG FIX的节奏次序;等合并到develop时,功能基本稳定,只需要合并最终结果,以后也很少会关心这个feature的开发过程中发生了什么事情。 综上