做b2b網站如何盈利模式新聞今天最新消息
有種情況我們經常會遇到:某個工作中的項目需要包含并使用另一個項目。 也許是第三方庫,或者你獨立開發(fā)的,用于多個父項目的庫。 現(xiàn)在問題來了:你想要把它們當做兩個獨立的項目,同時又想在一個項目中使用另一個。
Git 通過子模塊來解決這個問題。 子模塊允許你將一個 Git 倉庫作為另一個 Git 倉庫的子目錄。 它能讓你將另一個倉庫克隆到自己的項目中,同時還保持提交的獨立。
添加子模塊
添加一個遠程倉庫項目?https://github.com/chaconinc/DbConnector?子模塊到一個已有主倉庫項目中。命令如下:
git submodule add
?命令后面加上想要跟蹤的項目的相對或絕對 URL 來添加新的子模塊。
//可將該子模塊添加到file文件夾中(可選)
//這時,你會看到一個名為?file?的文件夾在你的主倉庫目錄中
git submodule add https://github.com/chaconinc/DbConnector file
在主倉庫添加完子模塊后,需要保存提交上傳。
git add .
git commit -m "添加子模塊"
git push origin branchName
更新子模塊
當子模塊中有更新時,需要手動更新拉取到最新信息
// 更新項目內子模塊到最新版本
git submodule update
// 更新子模塊為遠程項目的最新版本
git submodule update --remote
刪除子模塊
刪除子模塊比較麻煩,需要手動刪除相關的文件,否則在添加子模塊時有可能出現(xiàn)錯誤?,以刪除 file?子模塊倉庫文件夾為例
// 刪除子模塊文件夾
$ git rm --cached GWToolkit $ rm -rf GWToolkit
//刪除.gitmodules文件中相關子模塊的信息,類似于:
[submodule "GWToolkit"]path = GWToolkiturl = https://github.com/iphysresearch/GWToolkit.git
//刪除?
.git/config
?中相關子模塊信息,類似于:[submodule "GWToolkit"]url = https://github.com/iphysresearch/GWToolkit.gitactive = true
//刪除?
.git
?文件夾中的相關子模塊文件$ rm -rf .git/modules/GWToolkit
Clone
?包含子模塊的項目
對于你的主倉庫項目合作者來說,如果只是?git clone
?去下載主倉庫的內容,那么你會發(fā)現(xiàn)子模塊倉庫的文件夾內是空的!
此時,你可以像上面「添加子模塊」中說到的使用?
git submodule update --init --recursive
?
來遞歸的初始化并下載子模塊倉庫的內容。
也可以分初始化和更新子模塊兩步走的方式來下載子模塊倉庫的內容:
$ git submodule init?? ??? ?# 初始化子模塊
$ git submodule update?? ?# 更新子模塊
但是,如果你是第一次使用?git clone
?下載主倉庫的所有項目內容的話,我建議你可以使用如下的代碼格式來把主倉庫和其中子模塊的所有內容,都一步到位的下載下來:
$ git clone --recursive <project url>
以后可以在子模塊倉庫目錄下使用?git pull origin main
?或者?git push
?等來進行更新與合并等操作。