亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

composer下載的內容需要提交到git嗎

發布時間:2021-06-09 09:28:54 來源:億速云 閱讀:326 作者:小新 欄目:軟件技術

這篇文章主要為大家展示了“composer下載的內容需要提交到git嗎”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“composer下載的內容需要提交到git嗎”這篇文章吧。

具體問題:

想問一下各位使用Composer的同學,通過Composer下載后的文件你們會把內容提交到Git上嗎?
在官方的Faq上看到Should I Commit the dependencies in my vendor directory這篇文章,有建議是不提交到Git,那么應該如何處理切換分支就要重新composer install這個問題呢?如果將vendor提交到版本庫,那又應該如何處理包里面帶有的.git文件夾呢?

*修正 composer update 應該為 composer install

解決辦法:

事實上無論是分支開發,還是部署到生產環境,無論composer.json中版本號的通配符規則你怎么寫,我們最關心的永遠是一個最根本內容:開發當時,我們用的所有依賴庫,具體的版本號是哪一個?

而這個內容是composer.lock文件支持的。composer 本身通過維護 lock 文件,記錄了依賴庫產生任何改動之后,項目中所有依賴庫的具體版本。請閱讀關于此文件的文檔(https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file)。

你應當永遠把composer.lock文件提交到版本庫,并在切換分支或部署之后,使用composer install安裝 lock 文件中指定的具體依賴版本。

從這個意義上講,你是否將vendor目錄提交到主版本庫都是對的。提交與否這是一個互有取舍的選擇:

如果提交:

優勢:“拉取即用”的便利。

劣勢:信息重復。因為你開發當時的具體版本,lock 文件已經記錄。也就是說vendor文件夾表述了同一件事情。

劣勢:引入不一致性的風險。因為雖然 Composer 保證 lock 文件和vendor目錄一致,但提交到 git 版本庫畢竟是一個人工行為。你難以保證哪一次不會落下二者之一。

如果不提交,優劣勢反過來。不再重復。

我的想法是:我建議你堅持“正確性優于易用性”的思想。我的建議是不提交vendor,僅僅使用 lock 文件維持開發當時的依賴庫版本。

如果提交的話,請務必遵循以下兩個準則:

(1)務必保證vendor和composer.lock這兩個文件的提交是同步的。提了一個,必須提另一個。
任何開發,如果任何一次 commit 只交了其中一個,必須追責。
這個的理由是:雖然我們提交vendor保證拉取下來立刻可用,但是 git 是有部分檢出(checkout)功能的 —— 對于一個 Composer 項目,我有權遵照 Composer 項目的慣例,不檢出vendor目錄,而是拉取下來實務代碼之后隨手一個composer install,你不能說我錯。
(如果誰說這個是錯的,我支持你分分鐘上sf和知乎曝光你的無良公司和技術主管)

(2)務必按照Composer對于提交vendor文件夾的建議(https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md),忽略掉子庫的所有.git目錄,只提交vendor中的實務代碼。
相信我,vendor中的實質代碼,和vendor/**/.git下git庫本身的管理用文件,絕對是冰山的水上部分和水下部分的關系。不忽略,會死人的,不夸張。

另外必須指出的是:分支開發時,就算不通過版本庫同步vendor,而只同步composer.lock,也不會造成時間的浪費。

兩個分支切換時,無非是兩套具體版本換來換去。而 Composer 本身對所有下載的庫都是緩存的。每次拉分支之后的composer install必然命中全部的緩存,而不需要重復消耗下載的時間。

以上是“composer下載的內容需要提交到git嗎”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

聊城市| 新竹县| 饶河县| 福安市| 冷水江市| 吴桥县| 南通市| 朔州市| 金昌市| 隆化县| 抚松县| 江阴市| 呼伦贝尔市| 八宿县| 昌都县| 德兴市| 通海县| 鹤庆县| 淮滨县| 白沙| 虞城县| 青河县| 平昌县| 翁牛特旗| 阿瓦提县| 昭觉县| 康乐县| 福州市| 通江县| 平遥县| 噶尔县| 乐东| 新安县| 常宁市| 商丘市| 三台县| 云南省| 台山市| 新丰县| 乳山市| 博野县|