使用git维护共享代码库

时间:2013-05-07 05:26:54

标签: xcode git version-control branch

我不太确定使用什么是正确的术语,所以如果我把事情搞得一团糟,请提前原谅我。

我目前在git中为我在Mac应用商店中发布的应用维护代码库。出于各种原因,我现在也在考虑发布非MAS版本。

显然,MAS和非MAS版本将共享95%的公共代码库。事实上,他们不会共享的唯一部分是收据检查(MAS发布)和许可证密钥+自动更新(非MAS发布)。

这让我想到了我的问题的主旨 - 大概是"对"这样做的方法是在git中维护两个独立的分支?如何轻松确保两个分支保持同步而不必担心两个版本之间的收据检查和许可证密钥代码出血?那么xcode项目管理呢?假设我向MAS项目添加了一个文件,是否有一种简单的方法可以让它出现在非MAS项目中?

如果需要澄清,请告诉我。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我不会使用不同的分支,你会希望版本2.0的MAS和版本2.0的非MAS尽可能相等的功能。我只有两个目标,并在MAS目标的调试和释放配置中定义MAC_APP_STORE = 1。 95%的代码将是两个目标的成员,但许可和自动更新代码文件只是非MAS目标的成员。公共代码中有一些位需要有条件地编译,如下所示:

#ifdef MAC_APP_STORE
    ...
#else
    ...
#endif

答案 1 :(得分:1)

如果您可以隔离一个子目录中的不同文件,那么您可以考虑使用submodule(请参阅Pro Git book chapter on it

那样:

  • 您只有一个分支可以维护包含95%公共代码的父代表
  • 您可以在子模块库中维护特定于给定版本的文件的分支。