我正在研究 Magento商店(连接到 Git 的 SVN 存储库)利用基于出色的 HTML5 样板 Magento-Boilerplate主题(GitHub 存储库)并使用我自己的子主题(私有(private) Git 存储库)对其进行扩展。这些都存在于一个 www 文件夹中,该文件夹恰好是所有三个项目的顶级目录。我想将所有这些干净地集成到它们各自的存储库中,但是我发现的单个目录中的多个存储库的唯一解决方案是子模块(我喜欢这个想法,但据我所知要求每个项目位于主 Git 存储库的子文件夹中)并将文件符号链接(symbolic link)到位(应该可以工作,但有点困惑而且很烦人)。
是否有一种干净的方法来完成这项工作?这是我的文件夹结构的示例。我已经指出每个文件/目录所在的 repo 协议(protocol) - M = Magento,B = Boilerplate,P = Private:
/www
|-- app [M]
|-- frontend [M]
|-- base [M]
|-- magento-boilerplate [B]
|-- default [B]
|-- myprivatetheme [P]
|-- skin [M]
|-- frontend [M]
|-- base [M]
|-- magento-boilerplate [B]
|-- default [B]
|-- myprivatetheme [P]
|-- .htaccess [M][B][P]
|-- favicon.ico [M][P]
如您所见,即使整个 .htaccess 和 favicon.ico 没有在多个存储库中困惑(我只是在 Magento 和 Boilerplate 存储库中 gitignore 或 --assume-unchanged 它们,并为它们使用我的私有(private)存储库)顶级目录是 www,因为 Magento 将代码和主题拆分为具有 www 的共同父级的单独文件夹的方式。因此,从技术上讲,您甚至可以说应用程序、皮肤和各种前端文件夹也存在于多个存储库中,因为它们必须存在于每个存储库中,一直到结构的顶级目录。
从单独的文件夹中符号链接(symbolic link)这些存储库是我唯一的解决方案吗?这不是一个大问题,但我真的很想知道 Git 是否足够灵活以处理我的情况。看起来像 modman可能是专门为帮助解决这个符号链接(symbolic link)问题而创建的。
最佳答案
我确认没有简单的方法可以将 Git 存储库结构映射到部署结构(这基本上就是您的文件夹结构所显示的:部署到 Web 文件夹中)
“modman ”似乎是一种有效的自动化方式,但您需要记住,如果您对其中一个子模块进行任何更改,您将需要提交它们,将它们推送到各自的上游,并转到父 git 存储库,再次提交并推送。
modman 似乎没有考虑到所有这些。
OP Colt McCormack学习报告modgit :
modgit
is an alternative to the excellentmodman
tool.
Directly inspired from it, modgit allows you to deploy Git modules physically in your project (no symlinks).
Additionally, you can define include/exclude filters to deploy only files and folders of your choice.
关于linux - 在具有相同顶级父目录的文件夹内使用多个 Git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12721055/