【问题标题】:Git. Store several projects under the same repository吉特。将多个项目存储在同一个存储库下
【发布时间】:2013-11-10 14:29:51
【问题描述】:

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

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

但是。 我希望 Android 开发人员只能使用他的文件夹,iOS 开发人员也只能使用他的文件夹,并且他们都只能看到自己的文件夹相关历史记录(日志)。

我以前使用过 SVN。 通常我创建了子文件夹,您可以签出其中的任何一个以仅使用此子文件夹。 历史记录也被过滤到您的范围内。

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


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

  1. 为不同的平台使用分支。我不认为这是个好主意,因为分支用于其他目的。在我看来,这很“杰基”。
  2. 使用子模块。只需创建与您的目标平台一样多的存储库,将它们命名为“MYApp-iOS”、“MyApp-Android”等,最后得到“主”存储库,可以命名为“MYApp”(没有任何后缀)。然后将所有相关的存储库添加到具有 git 子模块功能的“主”存储库中。
  3. 使用 git 从属。正在调查...

请随时编辑此列表以集思广益。

【问题讨论】:

  • 您可以尝试使用两个branches,但这听起来确实不是一个好主意。你真的有充分的理由不使用两个独立的存储库吗?
  • 一个与您的问题有关的问题:stackoverflow.com/q/466303/653513
  • 这不是使用子模块的好例子吗?只需拥有两个存储库并在主存储库中使用两个项目的子模块
  • 是的,这似乎是合法的——尤其是如果代码的任何部分都可以共享。但这仍然表明使用两个存储库 - 这可能是正确的方法。
  • 谢谢,伙计们!我也在以同样的方式思考,只是好奇为什么 git 不允许将逻辑相关的代码存储在与 svn 相同的位置?

标签: android ios git svn subdirectory


【解决方案1】:

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

但请记住,这不是在 git 中实现分支的原因。例如,它的用途之一是为您的应用开发一项全新的功能,该功能可能不会很快发布。

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

不过,我肯定会创建两个独立的存储库。关于这个主题的一些意见也可以在这里找到:Git branches with completely different content

编辑:

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

【讨论】:

  • 谢谢!我不会使用分支,因为它们是为其他目的而实现的。我试图找到一些合法的方法来将逻辑连接的代码保持在同一个地方。我认为针对不同平台的同一应用程序的代码在逻辑上足够接近,可以将其存储为同一存储库的子文件夹。很奇怪,我不能在 git 中实现这个简单的想法。我觉得 git 很方便,从 svn 搬过来也没有遗憾,但是这种情况让我很困惑。
  • 您可能想看看gitslave。我不熟悉它,但它创建了一组相关的存储库——一个超级项目存储库和一些从属存储库
  • 将试一试并发布有关进度的信息。谢谢。
  • 嗨@DaddyM,你能告诉我你使用了什么策略吗? gitSlave 是否为您工作,或者其他什么?
  • 嗨@MuhammadMehdiRaza,当然。做这些事情的最简单和最好的方法是为每个平台的每个应用程序拥有单独的 git 存储库。因此,如果您正在为 iOS 和 Android 开发应用程序,您最终应该有两个存储库 - 一个用于 iOS,另一个用于 Android 代码。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
相关资源
最近更新 更多