2013-10-26 81 views
53

我正在使用ZF2骨架的應用程序,它有一個.gitignore,防止外部庫被委託git。在調試過程中,我喜歡去圖書館的源代碼中去改變東西,以便學習如何工作。如果這些版本被控制,那麼將它們恢復到它們的原始狀態將是非常容易的。如何強制作曲家重新安裝庫?

我該如何強制Composer重新安裝特定的框架,以便我可以再次獲得新的未修改的副本?注意:請不要建議刪除.gitignore文件,因爲它存在的原因是:http://www.google.com/support/downloads/details.asp?它會阻止我的第三方庫進入我的應用程序庫。我可以隨時在自動部署期間安裝它們。

+2

一個辦法是刪除作曲家。鎖定,然後運行作曲家安裝 – vascowhite

回答

33

您可以使用--prefer-source標誌作爲composer使用VCS信息(如果有的話)檢出外部軟件包。您可以簡單地恢復到原始狀態。另外,如果您發出composer update命令,作曲家將會檢測到您在本地做出的任何更改,並詢問是否要丟棄它們。

您的.gitignore文件與您的根項目(ZF2框架)相關,它可以防止供應商目錄(您的第三方庫在哪裏)提交給您自己的VCS。忽略文件與供應商的git倉庫無關。

+3

最初,你的-prefer-source建議不起作用,直到我意識到我必須刪除並重新安裝所有庫才能按照我的意圖工作,然後'composer status -v'給我提供了信息變化。 – Julian

+0

很高興你得到它的工作 –

102

就清楚你的供應商文件夾

rm -rf vendor/* 
+0

這真的幫了我幾個小時的搜索和搜索.... #helpful –

+8

不適用於沒有安裝在'vendor'目錄中的組件... –

+0

最簡單的解決方案。尼斯。 +1,這確實應該解決大多數人的問題。 – Ligemer

5

我所做的:

  1. 刪除特定庫的文件夾
  2. composer update --prefer-source vendor/library-name

它重新獲取其庫與它的混帳沿回購

0

我不想刪除所有的包中vendor/目錄,所以這裏是我是如何做的:

  1. rm -rf vendor/package-i-messed-up
  2. composer install再次