Git子模块状态 - 如何在子模块中显示当前分支

Eve*_*tss 6 git git-submodules

使用以下命令检查主存储库中子模块的状态:

git submodule status
Run Code Online (Sandbox Code Playgroud)

产生输出(没有关于分支的明确信息):

491e03096e2234dab9a9533da714fb6eff5dcaa7 vendor/submodule1 (v1.51.0-560-g491e030)
8bccab48338219e73c3118ad71c8c98fbd32a4be vendor/submodule2 (v1.32.0-516-g8bccab4)
Run Code Online (Sandbox Code Playgroud)

是否可以检查子模块上的当前分支,而无需:

cd vendor/submodule1
git status
cd ../submodule2
git status
Run Code Online (Sandbox Code Playgroud)

此命令不起作用:

git submodule status -b
Run Code Online (Sandbox Code Playgroud)

Eve*_*tss 13

答案隐藏在git submodule foreach:

git submodule foreach 'git status'
Run Code Online (Sandbox Code Playgroud)

您可以通过将此分配给别名来使其更简单:

git config --global alias.sb "submodule foreach \"git status\""
Run Code Online (Sandbox Code Playgroud)

现在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
Run Code Online (Sandbox Code Playgroud)


kri*_*hna 13

你可以跑git submodule status --recursive

它给

  • 提交 ID
  • 项目中子模块的路径
  • 分店名称

  • 我认为这不会显示子模块所在的分支 (2认同)