我有一個項目,我使用Git在這個項目中進行版本控制。在這個項目中,我必須添加一些庫作爲依賴項(更具體地說PHPUnit和Guzzle)。要求說這些庫必須存在於我的項目文件夾中,我必須使用作曲者來安裝/更新它們。使用Composer時,如何處理在另一個存儲庫中擁有存儲庫?
所以我做了這一點,我的目錄結構看起來是這樣的:
project
|----- .git
|----- libs
|---- guzzle
|---- .git
|---- phpunit
|---- .git
所以guzzle
和phpunit
文件夾都有一個單獨的文件夾.git
。這是因爲,據我所知,作曲家爲了檢索這些庫的源代碼而對github的主分支進行了克隆。
所以我做了一個提交+推送遠程存儲庫。但是,當其他人從該存儲庫中抽取時,libs/guzzle
和libs/phunit
文件夾中包含的文件不會顯示在該人員的工作目錄中。
我在想這是因爲2 .git
文件夾。
我該如何解決這個問題?我嘗試搜索作曲家的文檔,以便在composer.json
中指定只獲取最後一個快照的方式。但我找不到任何東西。
我也考慮刪除.git
目錄,但是如果我在幾個月內嘗試做composer update
,那麼這樣做會不會破壞一切?
過去有沒有人有這樣的問題?你是如何解決它的?
我瘋狂的猜測是submodules – Soundz
@Soundz你能更具體一點嗎? –
作曲家(以及Maven等其他類似工具)的巨大優勢之一是您無需在代碼中包含依賴關係,作曲家可以爲需要它們的人下載依賴關係。只需將整個'libs /'文件夾放在.gitignore中,並讓人們使用composer下載依賴關係。 – 1615903