遇到過相同的問題, 我的解決方案是在 `.gitignore` 檔案裡面把 `composer.lock` 這一行去掉, 也就是說把 `composer.lock` 檔案也加入版本控制. 這樣做有以下好處: 讓參與專案開發的成員使用這些 package 的同一版本, 減少分歧;在生產環境下, 使用命令 `composer install` 可以確保跟開發的時候使用了統一的版本, 減少不必要的變數;跟蹤當前專案使用所有 `package` 的版本, 當執行 `composer update` 出現問題時, 可以利用 Git 定位到出問題的 package, 匹對下版本, 接下來就可以做如: 在 composer.json 裡面寫死版本等的解決動作了.注意: 這裡說下 composer 的機制, 當 `composer.lock` 檔案存在的時候, 執行 `composer install` 命令時, composer 會更新按照 `composer.lock` 裡的 package 指定版本進行安裝, 如果是執行 `composer update` 的話, 會更新 `package` 版本, 並更新 `composer.lock` 檔案.可參考資料http://www.viiboo.cn
遇到過相同的問題, 我的解決方案是在 `.gitignore` 檔案裡面把 `composer.lock` 這一行去掉, 也就是說把 `composer.lock` 檔案也加入版本控制. 這樣做有以下好處: 讓參與專案開發的成員使用這些 package 的同一版本, 減少分歧;在生產環境下, 使用命令 `composer install` 可以確保跟開發的時候使用了統一的版本, 減少不必要的變數;跟蹤當前專案使用所有 `package` 的版本, 當執行 `composer update` 出現問題時, 可以利用 Git 定位到出問題的 package, 匹對下版本, 接下來就可以做如: 在 composer.json 裡面寫死版本等的解決動作了.注意: 這裡說下 composer 的機制, 當 `composer.lock` 檔案存在的時候, 執行 `composer install` 命令時, composer 會更新按照 `composer.lock` 裡的 package 指定版本進行安裝, 如果是執行 `composer update` 的話, 會更新 `package` 版本, 並更新 `composer.lock` 檔案.可參考資料http://www.viiboo.cn