91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

南宫市| 石河子市| 昭通市| 栖霞市| 黄冈市| 曲水县| 安塞县| 镇雄县| 谷城县| 鄂托克旗| 高雄市| 石台县| 鄯善县| 义乌市| 巨鹿县| 无为县| 沅陵县| 湘西| 霸州市| 北流市| 边坝县| 白银市| 建宁县| 余姚市| 邹城市| 封开县| 汝州市| 全椒县| 东台市| 闵行区| 横山县| 瑞金市| 五峰| 大余县| 双柏县| 南漳县| 健康| 梅州市| 新源县| 江阴市| 小金县|