linux - 在具有相同顶级父目录的文件夹内使用多个 Git 存储库?

标签 linux git magento symlink git-submodules

我正在研究 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 excellent modman 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/

相关文章:

java - Linux- 找不到 javac 命令

git - 如何以编程方式快进单个git提交?

git stash 无法刷新,如何只 pop 一些文件

database - 存储 cms_block 和类别之间关系的 magento 表

php - 将 PHP 项目从 Linux 服务器迁移到 Windows 服务器时文件名中的斜线

linux - #./和# 之间的区别。 ./

python - Graphite statsd xaxis 每 2 秒

Github Authentication Failed - ... GitHub不提供shell访问

php - Magento - 使用 Mage 编辑产品?

rest - Magento 2 - REST API - 嵌套 json 文件中的 searchCriteria