使用一个不同文件的两个应用程序的git

Bud*_*tne 4 git

我正在为两个机构开发一个相同的应用程序.除了单个属性文件中的名称外,所有代码都是100%相似的.将来,这两者之间也需要进行改进.是否可以在一个git存储库下管理两个应用程序的源代码,以便改进和错误修复将非常容易,但是会有不同的属性文件?

ang*_*son 6

是的,使用分支机构.

首先提交所有常见的内容,包括相关文件的公共(可能永远不会被实际使用)版本:

(1)
Run Code Online (Sandbox Code Playgroud)

然后,创建一个分支并将更改添加到该文件:

   (2)   <-- customer A
  /
(1)
Run Code Online (Sandbox Code Playgroud)

然后更新回原始变更集,并使用对同一文件的其他更改创建另一个分支:

   (2)   <-- customer A
  /
(1)
  \
   (3)   <-- customer B
Run Code Online (Sandbox Code Playgroud)

然后你从(1)分支开发,合并到你认为合适的各个(客户?)分支:

   (2)---------(6)                        <-- customer A
  /           /
(1)---(4)---(5)---(8)---(9)               <-- development trunk
  \           \
   (3)---------(7)                        <-- customer B
Run Code Online (Sandbox Code Playgroud)

等等

请注意,如果您有许多客户,或者许多此类较小的差异,可能会有其他方法来处理差异,例如构建系统将构建系统替换为构建的一部分,而不是具有N个分支,这可能会很快变得难以处理这种微小的差异.

换句话说,如果差异与品牌和每个客户可以访问的功能等内容相关,那么构建系统将为每个客户准备不同的可分配项,这些客户已经配置了正确的文件和配置.这根本不需要额外的分支(除了你应该已经拥有的与开发,测试,生产等相关的分支).


moo*_*e99 5

在这种情况下,我不会将配置文件置于版本控制之下 - 只需在README中声明应提供基于给定示例模板的配置文件,例如数据库凭据.

如果模板更改,您只需更新README.