我已经签出了一个包含一些子模块的项目。
首先我签出了project
,然后签出了submodules
:
git clone git@my-gitlab-server:namespace/project.git
使用最新版本为该branch
初始化子模块:
git submodule update --init --recursive
然后,我签出了包含子模块的特定分支。我只想获取每个sumbodule的分支名称。
但是:
$ git --git-dir path/to/my/submodule rev-parse --abbrev-ref HEAD
fatal: not a git repository: 'path/to/my/submodule'
$ cd path/to/my/submodule
$ (detached*)$ git branch
* (HEAD detached at 24bbc55)
develop
为什么第一个命令显示它不是git子模块? (虽然是)
签出是从子模块的特定分支(“开发”)完成的。如何获取实际的分支名称(而不是git sha
?)
答案 0 :(得分:0)
在您的项目列表中,git存储库中每个子模块的分支名称和状态:
dog_breeds = {0: "German Shepherd", 1: "Laborador": 2: "Maltese"}
在子模块列表中,该子模块的分支名称
git submodule foreach 'git status'
git子模块分离状态的原因可以在此处提出的另一个问题中找到:stackoverflow.com/a/48556186/3564632