我们公司目前正在使用一个简单的中继/发布/修补程序分支模型,并希望建议哪些分支模型最适合您的公司或开发过程。什么Git分支模型适合你?
工作流/分支模型
下面是这个我已经看到了三个主要的描述,但它们部分相互矛盾或不远远不够理清后续问题,我们已经遇到(如下所述)。因此,我们的团队迄今默认不是很好的解决方案。你在做更好的事情吗?
合并VS垫底(纠结VS连续历史)
如若一个
pull --rebase
或合并回主线,直到等待你任务完成?我个人倾向于合并,因为这保留了一个任务开始和结束的基础的视觉插图,我甚至更喜欢merge --no-ff
这个目的。但是它也有其他的缺点。还有很多没有意识到合并的有用特性 - 它不是commutative(将主题分支合并到主并不意味着将主合并到主题分支中)。我要寻找一个自然的工作流程
有时错误发生,因为我们的程序并不捕获与简单的规则具体情况。例如,早期版本所需的修补程序当然应该基于下游,以便可以将上游合并到所有必需的分支中(这些术语的用法是否足够清楚?)。然而,在开发人员意识到它应该放在更下游之前,修正会让它进入主服务器,并且如果这已经被推动(甚至更糟糕,合并或基于它的东西),那么剩下的选项是樱桃采摘,其相关的风险。你使用了哪些简单的规则? 此外,在这包括一个主题分支的尴尬必然排除其他主题分支(假设它们从共同基线分支)。开发商不希望完成一个功能启动另一个感觉像他们刚刚写的代码是不存在了
如何避免创建合并(因摘樱桃)的冲突?
什么似乎是一个确定的方式来创建合并冲突是樱桃选择分支之间,他们不能再合并?在任何一个分支中应用相同的提交还原(如何做到这一点?)可能会解决这种情况?这是我不敢推动大部分基于合并的工作流的原因之一。
如何分解成局部分支?
我们意识到,从主题分支组装完成的集成将是非常棒的,但是我们的开发人员经常工作并没有明确定义(有时就像“扯开”一样简单),并且如果某些代码已经进入“misc”这个话题,根据上面的问题,它不能再被带出去吗?你如何处理定义/批准/毕业/发布你的主题分支?
适当的程序,如代码审查和毕业当然是可爱的。
但是,我们根本无法将事情解决得足以解决这个问题 - 任何建议? 集成分支机构,插图?
下面是相关问题的列表:(!感谢this PDF)
- What are some good strategies to allow deployed applications to be hotfixable?
- Workflow description for Git usage for in-house development
- Git workflow for corporate Linux kernel development
- How do you maintain development code and production code?
- git releases management
- Git Cherry-pick vs Merge Workflow
- How to cherry-pick multiple commits
- How do you merge selective files with git-merge?
- How to cherry pick a range of commits and merge into another branch
- ReinH Git Workflow
- git workflow for making modifications you’ll never push back to origin
- Cherry-pick a merge
- Proper Git workflow for combined OS and Private code?
- Maintaining Project with Git
- Why cant Git merge file changes with a modified parent/master.
- Git branching/rebasing good practices
- When will "git pull --rebase" get me in to trouble?
- How are DVCS used in large teams?
还检查了什么塑料SCM上task driven development写道,如果塑料是不是你的选择,学习nvie's branching model和他supporting scripts。
哈,谢谢,其实......我其实已经阅读了大部分......东西:-)。这是我知道的 - 不是为了解决平庸的解决方案,而是继续寻找完美的东西。通常这是一个错误,但在这种情况下,很多问题都是危险的,而且手头的解决方案太麻烦或者太差,我需要继续寻找。所以我决定列出所有与它有关的问题。 – 2010-04-12 11:47:05
Plastic SCM博客将他们的意见投入到讨论中,至少有深刻的见解:http://codicesoftware.blogspot.com/2010/08/branch-per-task-workflow-explained.html – 2010-12-05 16:51:10
你必须小心使用“合并 - 无ff“,检查这个一些注意事项http://sandofsky.com/blog/git-workflow.html – Doppelganger 2012-08-21 15:01:39