2017-04-11 67 views
0

我有兩臺PC:A laptopdesktop computer
我在桌上型計算機上工作了兩週,並在我的參數上定義了一些新參數。我今天需要使用我的筆記本電腦,因此我從我的然後我執行下面的命令來更新我的項目:。作曲家更新後,Symfony 3上的gitignore無法正常工作

php composer.phar update 

這個命令成功地更新了我的項目(參數和供應商目錄)。有了這個,我現在可以運行我的項目。

的問題是,現在當我運行:

git status 

大量修改的文件出現在vendor目錄。另外composer.lock文件apperarrs,我認爲這是正確的,但不是供應商文件。

.gitignore包含,除其他外,以下行: vendor/*

我做了什麼錯?我該如何解決它?

回答

0

問題可能是雙重的。

您可能在將其添加到gitignore之前檢查了供應商目錄中的文件,或者您可能不小心通過--force標誌添加了忽略gitignore的標誌。

另一個大問題是,你運行composer update這不僅會在你的composer.lock中安裝依賴關係,它實際上會更新它們,這意味着你可能會得到不同的版本,然後是你以前開發的版本。下次您應該運行composer install(即使在已安裝供應商的系統上)。這將按照所宣稱的那樣進行安裝,它將安裝composer.lock中定義的所有依賴關係。無論何時您簽出該文件的較新版本,安裝命令都會自動將您的本地供應商更新爲其中定義的版本。這確保您始終使用相同的依賴項版本。

如果你想更新你的依賴關係,你可能需要使用composer update <dependency-name>來逐個更新它,然後這會再次更新你的composer.lock,你應該檢查到git。

在你的情況下,你可能想要刪除供應商文件夾,但一定要保留你的composer.lock。現在您可以提交此更改以確保您刪除所有簽入文件vendor /。之後,您的.gitignore應該再次運行並且運行composer install應該重新安裝composer.lock中定義的所有內容,並且在運行git status時,您不應該在工作目錄中看到任何更改。如果你有可能需要調整.gitignore,例如嘗試/vendor而不是vendor/*

+0

謝謝,下次我會用'composer install'。現在,我從GIT恢復了以前的composer.lock。我刪除了我的供應商文件夾,然後運行'composer install'。似乎沒問題。唯一的一點是輸出警告:'警告:鎖定文件沒有及時更新composer.json中的最新變化。你可能會過時依賴關係.'還有什麼方法可以恢復composer.json文件? –

+0

如果你只是恢復它,你可以做一個簡單的技巧來解決這個問題:'composer update --lock'。這隻會更新鎖文件中的哈希,而不會更新依賴關係。這通常適用於我。 – dbrumann

+0

如果你想更深入地瞭解如何與作曲家合作,你可能想看:http://knpuniversity.com/screencast/composer(免責聲明:我還沒有看過它,但從包含的主題列表中聽起來不錯)。 – dbrumann