我正在研究如何在与供应商的库(在本例中为 Magento)集成的同时,最好地在我自己的存储库中为自定义代码工作。就我而言,我不需要向供应商推送补丁(尽管这将是一个很大的附带好处)。
我研究了 git submodule 和 git subtree。我认为 git submodule 不能满足我的需要。Magento 具有以下类型的树结构:
/app
/code
/community *
/core
/local *
/design
/adminhtml
/frontend
/base
/yourtheme *
/lib
/Zend
/Varien
/yourlib *
/js
/yourjs *
/varien
/mage
使用 git submodule 似乎在单独的文件夹中效果最好(例如 / 是您的应用程序, /vendor/magento 是子模块)。但是,由于这种程度的交织,子模块似乎不是一个好的解决方案。我错了吗?
这给我留下了 git subtree。但是对于 git subtree,相同的核心假设(供应商分支,顾名思义,是一个子树)并不成立。Magento 不是子树,而是我的项目适合的核心库。那是对的吗?
如果这两种 git 方法不起作用,是否还有其他我应该知道的方法可以完成我想要完成的工作?
我不愿意追求的最后一个选择是拥有一个 repo,然后我只需将其应用于最新的供应商更改(从 tarball 中提取)。我不愿意追求这一点,因为我觉得拥有供应商的日志信息(从https://github.com/magentomirror/magento-mirror提取)对于整理新更新和找出哪些变化影响了我非常有帮助.