对于我们有以下情况的人们使用Git的建议:
- 1个单一的“核心系统”。
- 从核心系统我们为客户创建分支,并为他们定制。
- 如果在核心系统中发现错误,它将应用于客户端自定义版本。
- 一些错误修复将很难应用,因为客户定制的代码可以大量定制。
- 某些错误修复可能仅与客户的系统相关。
- 如果客户系统希望拥有额外的功能,也可能会在以后完成额外的工作。
我一直在尝试使用这种技术http://dev.innovationfactory.eu/2010/06/09/development-and-release-strategy-with-git/进行小型1人项目,但我担心我们可能会遇到多个客户端版本的问题。
我在下面列出了一个可能的策略,但我认为我们会遇到麻烦。虽然我们可以将某些内容标记为版本,但是我们的客户端版本会出现太多分歧,并且要知道要应用于哪个修补程序会很困难。
- /主
- / releases / [发布名称]
- / stories / [开发者姓名首字母缩写] / [新功能名称]
- / clients / [client name] / master
- / clients / [客户名称] /个人故事/ [开发者姓名缩写] / [新功能名称]
当然,答案是重构代码,以便客户端版本,不要改变代码 - 但我现在没有那么奢侈: - )
编辑:安德鲁已经指出了一个类似的问题,我以前一定错过了。它没有我自己的问题那么详细,包含足够的细节和良好的答案。所以我会投票支持这个问题:
How can I get track of several projects in Git that share common code?