submodule
git submodules
更新 submodule
自动初始化并更新仓库中的每一个子模块, 包括可能存在的嵌套子模块。
方式1
1
git clone --recurse-submodules https://github.com/realwujing/linux-learning.git
方式2
1
2git clone https://github.com/realwujing/linux-learning.git
git submodule update --init --recursive
递归地抓取子模块的更改并更新当前仓库中的每一个子模块, 包括可能存在的嵌套子模块。
方式1
1
git pull --recurse-submodules
方式2
1
2git pull
git submodule update --init --recursive
推送 submodule
推送当前仓库中的每一个子模块, 包括可能存在的嵌套子模块。
方式1
1
git push --recurse-submodules=on-demand
方式2(方式1报错情况下使用)
1
git submodule foreach --recursive 'git push' && git push
更改submodule分支
更改submodule分支
1
git config -f .gitmodules submodule.assembly.branch main
1
git submodule update --remote
在你拉取的提交中, 可能 .gitmodules 文件中记录的子模块的 URL 发生了改变。 比如,若子模块项目改变了它的托管平台,就会发生这种情况
1
2# 将新的 URL 复制到本地配置中
git submodule sync --recursive1
2# 从新 URL 更新子模块
git submodule update --init --recursive
删除 submodule
删除 submodule
1
2
3
4
5
6
7
8
9
10
11
12# 卸载子模块
git submodule deinit [submodule_folder]
# 如果想移除子库的本地修改,可使用--force标签
git submodule deinit [submodule_folder] --force
# 删除文件夹
git rm [submodule_folder]
# 提交代码
git commit -m "delete submodule xxxxx"