【发布时间】:2014-12-24 16:48:48
【问题描述】:
我正在与作曲家合作一个项目。 Composer 加载多个私有 git 存储库。现在我也想处理这个 repos 并从根项目提交它们,所以我通过 --prefer-source 加载 repos。
一切正常,除了这个:
每当我执行composer update 时,它都会生成一个新的 git 克隆,而不是 pull。所以我失去了所有未提交的更改。有没有办法摆脱这种情况?
提前致谢!
【问题讨论】:
-
如果可以选择更改工作流程,我建议您阅读 my post 不久前的相关问题。
-
不幸的是,这不是一个令人满意的解决方案。这是正常的作曲家行为吗,它克隆私人仓库每次我运行作曲家更新?即使什么都没有改变?为什么作曲家不只是做一个 git pull 而不是一个新的 git clone?
-
只要您在原始问题中声明您在“供应商”内部工作,这意味着您确实改变了一些东西。尽管我的解决方案对您来说似乎并不令人满意,但它是在您的供应商目录中处理依赖项的唯一正确方法。另一种方法是将您的库移动到“src”中,并在它达到足够稳定的状态后将其拆分到一个新包中。
-
实际上,自从上次更新修复它以来,它似乎 not 的正常行为。问题是作曲家再次克隆了所有内容,尽管没有任何改变。这覆盖了我自己做出的改变。现在,当没有找到我的包的更新版本时,composer 什么也不做,就像预期的那样。
-
“上次更新”在这里是一个相对术语,因为最近的更新没有触及任何可能影响您所指问题的代码部分。该代码的最后一次更改日期为 4 天前,这是一次测试修复提交。但是,遇到这个问题应该是对您的一个提示,即您在依赖项上并行工作的流程存在(至少)一个问题。
标签: git composer-php