对于具有单个“核心”版本和多个客户端自定义分支的项目的Git建议?

时间:2011-04-07 08:50:06

标签: git version-control

对于我们有以下情况的人们使用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?

1 个答案:

答案 0 :(得分:1)

为所有客户制作分支机构。补丁更新可以cherry pick完成。

必须拥有git的文档:link