我们有一个 git 存储库,该存储库当前拥有一个工作的 Magento 站点。该存储库包含所有核心 Magento 文件以及一些自定义和社区模块。我想做的是获取一些自定义模块并将它们移到自己的存储库中。
不幸的是,熟悉 Magento 目录结构的人都知道,Magento 中的模块并不是完全自包含在单个目录中,而是文件分布在多个目录中,例如app/code/local/{namespace}/{module}/
,app/design/frontend/base/{namespace}_{module}/
等等。我想要实现的是存储库,仅包含一个模块的所有文件,与它们当前具有的目录结构相同。在这一点上,我将能够创建只需解压缩到 Magento 站点目录的可分发存档(尽管我可能会在我自己的项目中使用 modman,以保持分离)。
我可以想到两种简单的方法:
- 克隆存储库,删除与相关模块无关的所有文件,并将源远程更改为新的空白存储库。
- 在空白文件夹中初始化一个新存储库,并将文件复制/粘贴到正确的目录层次结构中。提交他们。
这两种方法的缺点是我会丢失文件上的所有提交历史记录,这将是一种耻辱。我对如何保留这一点进行了一些研究,进行子树拆分似乎很有希望,但事实证明文件并不都在同一个目录中,这超出了我的能力范围。有没有人有做这种事情的经验?