背景
在很多項目中經常會重復使用一些代碼塊, 例如按鍵處理, LED提示, modbus等等
在傳統開發中, 我們經常是將一些代碼寫成獨立的.c/.h模塊. 但隨着時間的推移我們經常需要根據一
些項目的要求來升級部分代碼, 用git管理顯然有很多好處, 在正式的項目中將該項目作為git子模塊加 。
入到項目的git管理中, 這樣可以大大提高開發效率並且增加代碼的可靠性。
本文主要講解git子模塊的添加/刪除相關的基礎命令。
子模塊的添加
添加子模塊非常簡單,命令如下:
git submodule add <子模塊git項目地址> <路徑>
執行成功后,git status會看到項目中修改了.gitmodules,並增加了一個新文件(為剛剛添加的路徑)
git diff --cached查看修改內容可以看到增加了子模塊,並且新文件下為子模塊的提交hash摘要
git commit提交即完成子模塊的添加
子模塊的使用
克隆項目后,默認子模塊目錄下無任何內容。需要在項目根目錄執行如下命令完成子模塊的下載:
git submodule init
git submodule update
1
2
或:
git submodule update --init --recursive
1
執行后,子模塊目錄下就有了源碼,再執行相應的makefile即可。
子模塊的更新
子模塊的維護者提交了更新后,使用子模塊的項目必須手動更新才能包含最新的提交。
在項目中,進入到子模塊目錄下,執行 git pull更新,查看git log查看相應提交。
完成后返回到項目目錄,可以看到子模塊有待提交的更新,使用git add,提交即可。
刪除子模塊
有時子模塊的項目維護地址發生了變化,或者需要替換子模塊,就需要刪除原有的子模塊。
刪除子模塊較復雜,步驟如下:
rm -rf 子模塊目錄 刪除子模塊目錄及源碼
vi .gitmodules 刪除項目目錄下.gitmodules文件中子模塊相關條目
vi .git/config 刪除配置項中子模塊相關條目
rm .git/module/* 刪除模塊下的子模塊目錄,每個子模塊對應一個目錄,注意只刪除對應的子模塊目錄即可
執行完成后,再執行添加子模塊命令即可,如果仍然報錯,執行如下:
git rm --cached 子模塊名稱
完成刪除后,提交到倉庫即可。