Git submodule说明

以下示例: 父项目为box-server,子项目为box-deploy

添加submodule

  1. cd box-server
  2. git submodule add box-deploy-repository-url deploy
  3. git ci -m 'add submodule deploy'

clone含有submodule的项目

  1. 方法一(推荐)
    • git clone --recursive box-server-repository-url
  2. 方法二
    • git clone box-server-repository-url
    • git submodule init
    • git submodule update
  3. 方法三
    • git clone box-server-repository-url
    • git submodule update --init --recursive

检出子项目最新代码

  1. 方法一

    git submodule update --remote(默认检出master分支)

    设置子模块跟踪仓库其它分支

    git config -f .gitmodules submodule.deploy.branch developer

  2. 方法二

    • cd deploy
    • git fetch
    • git merge origin/master
  1. 方法三

    • git submodule update --remote --merge(检出并合并)

其它

  1. git pull --recurse-submodules
  2. git submodule foreach git checkout master
  3. git submodule foreach git pull
  4. git submodule update --init --recursive

删除submodule

  1. $ git submodule deinit -f -- deploy
  2. $ rm -rf .git/modules/deploy
  3. $ git rm -f deploy$ git rm --cached deploy
  4. $ git commit -m "remove deploy submodule"

修改submodule url

修改.gitmodules文件对应submodule的url,然后执行$ git submodule sync