Git 子模块状态 - 如何显示子模块中的当前分支
Git submodule status - how to show current branches in submodules
使用此命令检查主存储库中子模块的状态:
git submodule status
产生输出(没有关于分支的明确信息):
491e03096e2234dab9a9533da714fb6eff5dcaa7 vendor/submodule1 (v1.51.0-560-g491e030)
8bccab48338219e73c3118ad71c8c98fbd32a4be vendor/submodule2 (v1.32.0-516-g8bccab4)
是否可以在没有以下条件的情况下检查子模块上的当前分支:
cd vendor/submodule1
git status
cd ../submodule2
git status
?
此命令无效:
git submodule status -b
答案隐藏在 git submodule foreach
:
git submodule foreach 'git status'
您总是可以通过将其分配给别名来使其更简单:
git config --global alias.sb "submodule foreach \"git status\""
现在 git sb
为您提供有关子模块中分支的详细信息:
Entering 'vendor/submodule1'
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Entering 'vendor/submodule2'
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
你可以运行git submodule status --recursive
。
它给出
- 提交 ID
- 子模块在项目中的路径
- 分行名称
使用此命令检查主存储库中子模块的状态:
git submodule status
产生输出(没有关于分支的明确信息):
491e03096e2234dab9a9533da714fb6eff5dcaa7 vendor/submodule1 (v1.51.0-560-g491e030)
8bccab48338219e73c3118ad71c8c98fbd32a4be vendor/submodule2 (v1.32.0-516-g8bccab4)
是否可以在没有以下条件的情况下检查子模块上的当前分支:
cd vendor/submodule1
git status
cd ../submodule2
git status
?
此命令无效:
git submodule status -b
答案隐藏在 git submodule foreach
:
git submodule foreach 'git status'
您总是可以通过将其分配给别名来使其更简单:
git config --global alias.sb "submodule foreach \"git status\""
现在 git sb
为您提供有关子模块中分支的详细信息:
Entering 'vendor/submodule1'
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Entering 'vendor/submodule2'
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
你可以运行git submodule status --recursive
。
它给出
- 提交 ID
- 子模块在项目中的路径
- 分行名称