日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
composer下載的內(nèi)容需要提交到git嗎

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

創(chuàng)新互聯(lián)是專業(yè)的鄉(xiāng)寧網(wǎng)站建設(shè)公司,鄉(xiāng)寧接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鄉(xiāng)寧網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

具體問(wèn)題:

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

*修正 composer update 應(yīng)該為 composer install

解決辦法:

事實(shí)上無(wú)論是分支開(kāi)發(fā),還是部署到生產(chǎn)環(huán)境,無(wú)論composer.json中版本號(hào)的通配符規(guī)則你怎么寫(xiě),我們最關(guān)心的永遠(yuǎn)是一個(gè)最根本內(nèi)容:開(kāi)發(fā)當(dāng)時(shí),我們用的所有依賴庫(kù),具體的版本號(hào)是哪一個(gè)?

而這個(gè)內(nèi)容是composer.lock文件支持的。composer 本身通過(guò)維護(hù) lock 文件,記錄了依賴庫(kù)產(chǎn)生任何改動(dòng)之后,項(xiàng)目中所有依賴庫(kù)的具體版本。請(qǐng)閱讀關(guān)于此文件的文檔(https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file)。

你應(yīng)當(dāng)永遠(yuǎn)把composer.lock文件提交到版本庫(kù),并在切換分支或部署之后,使用composer install安裝 lock 文件中指定的具體依賴版本。

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

如果提交:

優(yōu)勢(shì):“拉取即用”的便利。

劣勢(shì):信息重復(fù)。因?yàn)槟汩_(kāi)發(fā)當(dāng)時(shí)的具體版本,lock 文件已經(jīng)記錄。也就是說(shuō)vendor文件夾表述了同一件事情。

劣勢(shì):引入不一致性的風(fēng)險(xiǎn)。因?yàn)殡m然 Composer 保證 lock 文件和vendor目錄一致,但提交到 git 版本庫(kù)畢竟是一個(gè)人工行為。你難以保證哪一次不會(huì)落下二者之一。

如果不提交,優(yōu)劣勢(shì)反過(guò)來(lái)。不再重復(fù)。

我的想法是:我建議你堅(jiān)持“正確性優(yōu)于易用性”的思想。我的建議是不提交vendor,僅僅使用 lock 文件維持開(kāi)發(fā)當(dāng)時(shí)的依賴庫(kù)版本。

如果提交的話,請(qǐng)務(wù)必遵循以下兩個(gè)準(zhǔn)則:

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

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

另外必須指出的是:分支開(kāi)發(fā)時(shí),就算不通過(guò)版本庫(kù)同步vendor,而只同步composer.lock,也不會(huì)造成時(shí)間的浪費(fèi)。

兩個(gè)分支切換時(shí),無(wú)非是兩套具體版本換來(lái)?yè)Q去。而 Composer 本身對(duì)所有下載的庫(kù)都是緩存的。每次拉分支之后的composer install必然命中全部的緩存,而不需要重復(fù)消耗下載的時(shí)間。

以上是“composer下載的內(nèi)容需要提交到git嗎”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享標(biāo)題:composer下載的內(nèi)容需要提交到git嗎
文章起源:http://www.dlmjj.cn/article/ieeepj.html