應(yīng)該將 vendor 目錄加入版本控制嗎?

應(yīng)該將 vendor 目錄加入版本控制嗎?

composer使用教程欄目給大家提供了關(guān)于composer各種問題的解決辦法,比如:

我應(yīng)該將 vendor 目錄加入版本控制嗎?

通常情況下請不要這樣做, vendor 文件夾(或者其它你依賴包所安裝的位置)應(yīng)該被加入 .gitignore/svn:ignore/……

最好的方式是讓所有開發(fā)人員使用 composer使用教程命令來安裝依賴,同樣的,構(gòu)建服務(wù)器,部署工具等,需要將運行 Composer 納入工程引導的一部分。

盡管在某些情況下將其提交到版本庫挺讓吸引人的,但其容易帶來下面幾個問題:

● 當你更新代碼時,版本控制倉庫代碼變大,diff 變得臃腫。

●?項目所有的依賴將在你版本控制中產(chǎn)生一份副本。

●?某些場景下 Composer 通過 git 安裝的 git 倉庫將被視為子模塊。這是有問題的且會帶來麻煩,因為它們并非真正的子模塊。

如果你真的感覺你必需這么做,你有這幾個選項:

1、依賴包的版本限制為打過 tag 的發(fā)布(非 dev)版本,這樣的話你只會通過 zipped 安裝,從而避免因為 git submodule 產(chǎn)生問題。

2、使用 –prefer-dist 或設(shè)置 preferred-install 為 dist 到你項目的 config.

3、每個依賴安裝后移除 .git 目錄,然后再把它們添加到你的倉庫中。你可以使用 rm -rf vendor/**/.git (在 ZSH 中) 或? find vendor/ -type d -name “.git” -exec rm -rf {} ; (在 bash 中)。但這意味者下次運行 composer update 時你需要刪除這些依賴。/

4、添加一個 .gitignore 規(guī)則(/vendor/**/.git)來忽略 vendor 下的 .git 目錄。此方法的好處是你無需為了 composer update 而刪除這些依賴。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊6 分享