【发布时间】:2013-11-10 14:29:51
【问题描述】:
想象一下计划在 iOS 和 Android 上实现的移动应用程序。 开发仅从 iOS 版本开始,现在是时候从 Android 版本开始了。 iOS 应用程序的代码存储在其自己的 Git 存储库中,该存储库以应用程序名称命名,例如“我的应用程序”。 现在我想为 iOS 和 Android 应用程序创建一个通用存储库,并在应用程序名称后重新命名:“MYApp”。
乍一看这不是问题。 只需创建存储库,在那里创建 2 个子文件夹并开始工作。
但是。 我希望 Android 开发人员只能使用他的文件夹,iOS 开发人员也只能使用他的文件夹,并且他们都只能看到自己的文件夹相关历史记录(日志)。
我以前使用过 SVN。 通常我创建了子文件夹,您可以签出其中的任何一个以仅使用此子文件夹。 历史记录也被过滤到您的范围内。
我坚持在 Git 下实现相同的功能。 请帮我找到正确的方向。
我会总结建议的解决方案。
- 为不同的平台使用分支。我不认为这是个好主意,因为分支用于其他目的。在我看来,这很“杰基”。
- 使用子模块。只需创建与您的目标平台一样多的存储库,将它们命名为“MYApp-iOS”、“MyApp-Android”等,最后得到“主”存储库,可以命名为“MYApp”(没有任何后缀)。然后将所有相关的存储库添加到具有 git 子模块功能的“主”存储库中。
- 使用 git 从属。正在调查...
请随时编辑此列表以集思广益。
【问题讨论】:
-
您可以尝试使用两个branches,但这听起来确实不是一个好主意。你真的有充分的理由不使用两个独立的存储库吗?
-
一个与您的问题有关的问题:stackoverflow.com/q/466303/653513
-
这不是使用子模块的好例子吗?只需拥有两个存储库并在主存储库中使用两个项目的子模块
-
是的,这似乎是合法的——尤其是如果代码的任何部分都可以共享。但这仍然表明使用两个存储库 - 这可能是正确的方法。
-
谢谢,伙计们!我也在以同样的方式思考,只是好奇为什么 git 不允许将逻辑相关的代码存储在与 svn 相同的位置?
标签: android ios git svn subdirectory