Git 将Magento模块提取到单独的存储库中

Git 将Magento模块提取到单独的存储库中,git,magento,Git,Magento,我们有一个git存储库,目前拥有一个工作的Magento站点。存储库包含所有核心Magento文件以及一些自定义和社区模块。我想做的是获取一些自定义模块,并将它们移到它们自己的存储库中 不幸的是,熟悉Magentos目录结构的人都知道,Magento中的模块并非完全独立于单个目录,而是跨多个目录分布,例如app/code/local/{namespace}/{module}/,app/design/frontend/base/{namespace}{module}/等等。我想要实现的是一个存储库

我们有一个git存储库,目前拥有一个工作的Magento站点。存储库包含所有核心Magento文件以及一些自定义和社区模块。我想做的是获取一些自定义模块,并将它们移到它们自己的存储库中

不幸的是,熟悉Magentos目录结构的人都知道,Magento中的模块并非完全独立于单个目录,而是跨多个目录分布,例如
app/code/local/{namespace}/{module}/
app/design/frontend/base/{namespace}{module}/
等等。我想要实现的是一个存储库,它只保存一个模块的所有文件,与当前模块的目录结构相同。此时,我将能够创建只需解压缩到Magento站点目录中的可分发归档文件(尽管我可能会在自己的项目中使用modman来保持分离)

我可以想出两种简单的方法:

  • 克隆存储库,删除与中的模块无关的所有文件 询问并将原始远程存储库更改为新的空白存储库
  • 在空白文件夹中初始化新存储库并复制/粘贴 将文件放入正确的目录层次结构中。把他们干掉
  • 这两种方法的缺点是,我将丢失文件上的所有提交历史记录,这将是一种耻辱。我做了一些研究,研究了如何保留这些文件,进行子树拆分似乎很有希望,但事实证明,这些文件并不都在同一个目录中,这超出了我的能力。有人有做这种事情的经验吗?

    我找到了你想要的(希望):

    旧答案: 看一看:我更喜欢它

    但还有第二件事我还没有尝试:

    这看起来像是git filter branch的候选者,这是一个相当大的怪物…您有点错过了要点。我甚至提到我打算使用modman。我相信答案可能在于filter branch,不幸的是,尽管我无法让它在多个子目录路径上工作。该死,我担心:(对此一无所知。是git专家的时候了:)