【发布时间】:2011-09-09 08:50:14
【问题描述】:
git 有什么方法可以知道你是否在子模块中?您可以在父目录中进行类似git submodule foreach 的思考,但我似乎无法想出一种通用的方式来表明您在子模块中,如果您在一个子模块中,或者在子目录中的任何子目录中子模块。
我猜你可以使用git rev-parse --show-toplevel 找到 repo 根目录,然后 cd-ing 上一层,再次找到该 repo 的根目录,然后将子模块列表与当前目录进行比较,但这似乎很棘手...
【问题讨论】:
-
对于任何找到这个的人,这是我在andrewray.me/bash-prompt-builder/index.html中使用的项目
-
git rev-parse --git-dir | grep '\.git/modules'怎么样?或者如果您只需要 git 目录,则只需git rev-parse --git-dir。 -
注意:使用 Git 2.13(2017 年第二季度),实际使用的命令是
git rev-parse --show-superproject-working-tree。见我的edited answer below。
标签: git bash command-prompt git-submodules