專案中經常使用別人維護的模組,在git中使用子模組的功能能夠大大提高開發效率。
使用子模組後,不必負責子模組的維護,只需要在必要的時候同步更新子模組即可。
新增子模組非常簡單,命令如下:
git submodule add
其中,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
,提交即可。
有時子模組的專案維護位址發生了變化,或者需要替換子模組,就需要刪除原有的子模組。
刪除子模組較複雜,步驟如下:
rm -rf 子模組目錄
刪除子模組目錄及原始碼
vi .gitmodules
刪除專案目錄下.gitmodules檔案中子模組相關條目
vi .git/config
刪除配置項中子模組相關條目
rm .git/module/*
刪除模組下的子模組目錄,每個子模組對應乙個目錄,注意只刪除對應的子模組目錄即可
執行完成後,再執行新增子模組命令即可,如果仍然報錯,執行如下:
git rm --cached 子模組名稱
完成刪除後,提交到倉庫即可。
git中submodule修改子模組的git位址
1 刪除子模組 1 rm rf 子模組目錄 刪除子模組目錄及原始碼 2 vi gitmodules 刪除專案目錄下.gitmodules檔案中子模組相關條目 3 vi git config 刪除配置項中子模組相關條目 4 rm git module 刪除模組下的子模組目錄,每個子模組對應乙個目錄,注...
git中submodule子模組的新增 使用和刪除
專案中經常使用別人維護的模組,在git中使用子模組的功能能夠大大提高開發效率。使用子模組後,不必負責子模組的維護,只需要在必要的時候同步更新子模組即可。新增子模組非常簡單,命令如下 git submodule add 其中,url為子模組的路徑,path為該子模組儲存的目錄路徑。執行成功後,git ...
git的submodule使用方法
新增子專案 git submodule add當專案git clone之後初始化子專案倉庫 git submodule update init recursive舉個例子,比如我的子模組叫做a core 在使用的時候經常會遇到 a core already exists and is not a v...