1. 程式人生 > >git submodule

git submodule

開發十年,就只剩下這套架構體系了! >>>   

給專案增加submodule
git submodule add https://github.com/chaconinc/DbConnector

———————
克隆主專案時預設不會將submodule一起克隆

克隆主專案後,需要:
git submodule init
git submodule update

或者:
主專案克隆時直接把submodules一起克隆
git clone –recurse-submodules https://github.com/chaconinc/MainProject

———————
從遠端獲取更新
進入submodule,
git fetch
git merge origin/master

配置git pull時同時拉取submodule(全域性)
git config –global submodule.recurse true

自動合併,預設是master分支,如果不加merge 或rebase,會指向一個detached ID:
git submodule update –remote

git submodule update –remote –merge
git submodule update –remote –rebase

不使用master ,使用其他分支更新,比如dev分支
git config -f .gitmodules submodule.DbConnector.branch dev
git submodule update –remote

————————
git diff 時同時顯示submodule的差異:
git config –global diff.submodule log
————————

刪除:
git submodule deinit –force usr/plugins/BaiduSubmit

————————
push:

主專案push時把module也自動push
git push –recurse-submodules=on-demand
或者配置
git config push.recurseSubmodules on-demand

不自動push,僅提示
git push –recurse-submodules=check
git config push.recurseSubmodules check

僅push module,不push主專案
–re