1. 程式人生 > 程式設計 >git中submodule子模組的新增、使用和刪除的示例程式碼

git中submodule子模組的新增、使用和刪除的示例程式碼

背景

專案中經常使用別人維護的模組,在git中使用子模組的功能能夠大大提高開發效率。

使用子模組後,不必負責子模組的維護,只需要在必要的時候同步更新子模組即可。

本文主要講解子模組相關的基礎命令,詳細使用請參考man page。

子模組的新增

新增子模組非常簡單,命令如下:

git submodule add <url> <path>

其中,url為子模組的路徑,path為該子模組儲存的目錄路徑。

執行成功後,git status會看到專案中修改了.gitmodules,並增加了一個新檔案(為剛剛新增的路徑)

git diff --cached檢視修改內容可以看到增加了子模組,並且新檔案下為子模組的提交hash摘要

git commit提交即完成子模組的新增

子模組的使用

克隆專案後,預設子模組目錄下無任何內容。需要在專案根目錄執行如下命令完成子模組的下載:

git submodule init
git submodule update

或:

git submodule update --init --recursive

執行後,子模組目錄下就有了原始碼,再執行相應的makefile即可。

子模組的更新

子模組的維護者提交了更新後,使用子模組的專案必須手動更新才能包含最新的提交。

在專案中,進入到子模組目錄下,執行 git pull更新,檢視git log檢視相應提交。

完成後返回到專案目錄,可以看到子模組有待提交的更新,使用git add,提交即可。

刪除子模組

有時子模組的專案維護地址發生了變化,或者需要替換子模組,就需要刪除原有的子模組。

刪除子模組較複雜,步驟如下:
1.rm -rf 子模組目錄 刪除子模組目錄及原始碼
2.vi .gitmodules 刪除專案目錄下.gitmodules檔案中子模組相關條目
3.vi .git/config 刪除配置項中子模組相關條目
4.rm .git/module/* 刪除模組下的子模組目錄,每個子模組對應一個目錄,注意只刪除對應的子模組目錄即可

執行完成後,再執行新增子模組命令即可,如果仍然報錯,執行如下:

git rm --cached 子模組名稱

完成刪除後,提交到倉庫即可。

到此這篇關於git中submodule子模組的新增、使用和刪除的示例程式碼的文章就介紹到這了,更多相關git submodule子模組新增刪除內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!