如何只访问 git 子模块的分支名称?

How can I access only the branch name of a git submodule?

我在 .gitmodules 中定义了一个子模块:

[submodule "app/scripts/directives/foo"]
    path = app/scripts/directives/foo
    url = git@bitbucket.org:ross_rogers/foo.git
    branch = my_branch

是否有编程方式从包含的存储库访问此分支参数?

git submodule status 产生(没有换行符):

074d5c118eeae3bf622c6f878db96d8bf8b3bf47 \
app/scripts/directives/foo \
(heads/my_branch)

我处于WindowsCMDshell和Linuxbash的双重环境中,所以我正在寻找一种方法来获得my_branch 以编程方式,不使用 unix cut/awk/ 等

git submodule foreach这里可能有用,它的参数在bash:

中执行
git submodule foreach "git branch | sed -n 's/^\* //p'"
git config submodule.app/scripts/directives/foo.branch

将为您提供当前正在使用的分支,并且

git config -f .gitmodules submodule.app/scripts/directives/foo.branch

将为您提供配置的默认值