如何在同一个基目录中创建两个Git存储库,而不使用分支?

时间:2011-04-20 11:21:25

标签: git magento git-submodules git-subtree git-slave

我们目前正在将Magento Enterprise(电子商务Web应用程序)文件移至Git。 httpdocs / .gitignore文件包含以下内容:

app/design/frontend/company/website/
skin/frontend/company/website/

在初始化,提交和推送httpdocs /之后,我们成功创建了第一个Git存储库。我们现在想要将上述两个目录放入它们自己的独立存储库中。 (在一个存储库中一起!)我们遇到的问题是这些目录共享一个已经包含我们的第一个Git存储库的公共根目录;那就是:httpdocs /

我已经读过,子模块功能可以在现有树的子目录中嵌入其他存储库。但是,例如kernel.orggit-scm.com的文档看起来很复杂,让我想知道这是否真的是前进的方式。我们所需要的只是两个独立的存储库,它们碰巧具有相同的根。

我读过的另一个可能的解决方案可能是从app / design / frontend / company / website /初始化,并添加skin / frontend / company / website /作为移植点,以便将这些目录连接在一起。然而,这似乎过于复杂,而且在从另一个版本控制系统转移到Git时也可以使用。

3 个答案:

答案 0 :(得分:3)

您必须使用子模块或通过子树合并链接不同的存储库。

如果您使用子模块路径,请考虑使用gitslave,因为如果您正在积极开发这两个存储库,它将为您节省大量手动步骤。

希望这会有所帮助。

答案 1 :(得分:0)

您可以查看subtree merging - 这是使用子模块的替代方法

在继续之前,先完成这些步骤并了解它的作用。

虽然像安东一样,你想要做的事可能不是最好的做法。事实上,它可以引导你遇到其他问题!

答案 2 :(得分:0)

从git-1.7.11上的子树命令添加到git。 它完全符合您的要求,没有子模块的问题,也没有子树合并的麻烦。 (子树命令与子树合并不同)

这是一篇相关的博文:enter link description here