再说 vendor 目录进不进版本控制

先说结论:不进 官方的指导是不进,如果非要进有如下四个方法 尽可能使用已经发布的包,这样可以使用tarball的方式来更新。 在composer.json中指定preferred-install为dist或者更新的时候带上–prefer-dist参数 在提交git/svn之前,删除掉所有.git目录 在项目的.gitignore中加上/vendor/**/.git 为什么我又来发这个了呢,因为我踩到坑了啊,由于使用了private package在composer.json中加了repositories,结果vendor下这些内容都成了submodule,但是远端的并不会更新,所以这是一个很严重的问题。 至于以后的部署问题,我还要再梳理一下。

解 git submodule 无映射路径的问题

我们在使用Git submodule 的过程中我遇到的一个问题是执行git submodule update之后会出一个错误 fatal: no submodule mapping found in .gitmodules for path ‘vendor/predis/predis’ 这个问题就是你发现有一个不在.gitmodule文件中的submodule在更新,解决办法就是 git ls-files –stage | grep 160000 这可以看到你所有的Submodule文件,然后 git rm –cached PATH Problem solved. REF: No submodule mapping found in .gitmodule for a path that’s not a submodule