工具之Git | submodule 常用命令
Posted Charmve
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工具之Git | submodule 常用命令相关的知识,希望对你有一定的参考价值。
submodule 常用命令
git submodule
: 显示所有 submodule
, 等同于git submodule status
- 添加 submodule 到现有项目
- Run
git submodule add -b <branch> --name <name> <repo-url> <local dir>
- Commit both files on the superproject
- 从当前项目移除 submodule
git submodule deinit -f <submodule_path>
rm -rf .git/modules/<submodule_path>
git rm -f <submodule_path>
- 复制含 submodule 项目到本地
- Clone the superproject as usual
- Run git submodule init to init the submodules
- Run git submodule update to have the submodules on a detached HEAD
或者直接执行 git clone --recurse-submodules <repo-url>
-
git submodule init
: 将本项目所依赖的 submodule 进行初始化 -
git submodule update
: 将本项目所依赖的 submodule 更新到本地最新版本 -
git submodule update --init
: 前面两个命令的合并 -
git submodule update --init --recursive
: 前面三个命令的合集, --recursive 是为了保证即使 submodule 又嵌套了 sub-submodule, 也可以被执行到. 这个命令比较全面, 会经常使用 -
git submodule update
: 更新 submodule 为 superproject 本次 commit 所记录的版本 (本地版本为旧版本的话那么就与旧版本保持同步!) -
git submodule update --remote
: 更新 submodule 为远程项目的最新版本 (更为常用!) -
git submodule update --remote <submodule-name>
: 更新指定的 submodule 为远程的最新版本 -
git push --recurse-submodules=
-
check
: 检查 submodule 是否有提交未推送, 如果有, 则使本次提交失败 -
on-demand
: 先推送 submodule 的更新, 然后推送主项目的更新(如果 submodule 推送失败, 那么推送任务直接终止) -
while
: 所有的 submodule 会被依次推送到远端, 但是 superproject 将不会被推送 -
no
: 与 while 相反, 只推送 superproject, 不推送其他 submodule -
git pull --recurse-submodules
: 拉取所有子仓库 (fetch) 并 merge 到所跟踪的分支上 -
git diff --submodule
: 查看 submodule 所有改变 -
git submodule foreach '<arbitrary-command-to-run>'
: 对所有 submodule 执行命令, 非常有用, 如git submodule foreach 'git checkout main'
以上是关于工具之Git | submodule 常用命令的主要内容,如果未能解决你的问题,请参考以下文章