我们对于Git相对较为新。我们使用Git已经大约6个月了,并且使用过GitHub和BitBucket。我们尝试通过使用GitBash学习尽可能多的内容,以便更深入地了解git。
现在我们正处于考虑分支策略的阶段,因此我一直在进行一些研究。
在我看来,对于我们的要求而言,GitFlow过于复杂。总共我们大约会涉及20个不同的项目,并且每个项目只有每2个月左右发布一次版本。经过研究后,GitHub Flow似乎是一个非常简单直接的选项,可以满足我们的需求,但是它似乎存在一个缺陷,我想听取其他人的意见。
在主分支中的任何东西都是可部署的。我们会将其部署到UAT/QA环境中,在那里该版本可能会保持3-4周,具体取决于客户和/或我们签署所有文件所需的时间。同时,其他人可能需要处理完全不同的任务。根据GitHub Flow的流程,如果此时用户从Master分支派生出一个分支,则该用户将包括那些实际上仍然在QA环境中的更改。那么,我是否误解了GitHub Flow的第一点——即主分支中的任何东西都是可部署的——或许只有在代码经过QA等流程之后,这一点才是正确的?
如果那样的话,流程实际上会更像:
- 从Master派生一个分支
- 在该分支中提交更改(仅在该分支中)
- 将该分支与名为“Develop”的单独分支合并
- 发布到QA/UAT
- 获得批准后,将该分支与Master合并并部署?
我认为GitHub Flow中的第1点特别困惑我们——当版本仍处于QA阶段时,我们肯定不应该将更改推回Master分支——这可能会使Master分支变得不稳定,并且肯定不是当前产品环境中正在使用的内容。
git-flow
和GitHub flow,因此感到困惑。我已经更新了答案。 - Sebastian Lenartowiczgit-flow
也不是GitHub flow - 对吗?这当然没有什么问题,但是在SO答案中推荐特定的流程超出了范围(因为它主要基于个人意见)。 - Sebastian Lenartowicz