Git的。将多个项目存储在同一个存储库中

时间:2013-11-10 14:29:51

标签: android ios git svn subdirectory

想象一下计划在iOS和Android上实施的移动应用程序。 开发仅从iOS版本开始,现在是开始使用Android版本的时候了。 iOS应用程序的代码存储在其自己的Git存储库中,该存储库以应用程序名称命名,例如: “MYAPP”。 现在我想为iOS和Android应用程序创建一个公共存储库,并在应用程序名称后再次命名:“MYApp”。

乍一看这不是问题。 只需创建存储库,在那里创建2个子文件夹并开始工作。

但是。 我希望Android开发人员只能与他的文件夹和iOS开发人员一起工作,他们两个都只能看到他们自己的文件夹相关的历史记录(日志)。

我之前曾与SVN合作过。 通常我创建了子文件夹,您可以签出其中任何一个只能使用此子文件夹。 历史也被过滤到您的范围。

我坚持在Git下实现相同的功能。 请帮我找到正确的方向。


我将总结建议的解决方案。

  1. 在不同平台上使用分支。我不认为这是好主意,因为分支用于其他目的。在我看来非常“笨蛋”。
  2. 使用子模块。只需创建与您要定位的平台一样多的repos,将它们命名为“MYApp-iOS”,“MyApp-Android”等,最后得到“master”repo,这可能是“MYApp”的名称(没有任何后缀) )。然后使用git子模块功能将所有相关的repos添加到“master”中。
  3. 使用git slave。调查...
  4. 请随时编辑此列表以集思广益。

1 个答案:

答案 0 :(得分:1)

有一种方法可以使用git branching将相关的单独项目保存在同一个git存储库中。

但请记住,这不是为什么分支在git中实现的原因。它的一个用途是为您的应用程序开发一个根本性的新功能,例如可能不会很快看到该版本。

最后:这是一个意见问题。如果您准备管理更复杂的存储库只是为了将两个代码保存在同一个地方 - 您可以。

我绝对会制作两个单独的存储库。关于这个主题的几点意见也可以在SO上找到:Git branches with completely different content

编辑:

gitslave似乎解决了你的问题。你可能想尝试一下。