esz*_*k.k 10 git git-submodules
我想获取指定子模块的当前提交ID.我想当我进入子模块目录并运行git rev-parse HEAD后,我发现这是一个超级项目当前ID.git submodule status | grep <submodule_name>也试过,但它对我来说很慢.知道如何更快地获取这些信息吗?
Von*_*onC 14
你可以从git ls-files -s(在这个答案中)开始
cd /path/to/parent/repo
git ls-files -s yourSubmodule
Run Code Online (Sandbox Code Playgroud)
注意没有尾随' /'后面yourSubmodule(这是签出子模块的根文件夹)
这将给出与gitlink相关联的模式和sha1 (父repo索引中的特殊条目)
160000 4d77d23305c5623356955ef9f908f4ec76780ba9 0 yourSubmodule
Run Code Online (Sandbox Code Playgroud)
('0'代表舞台编号)
备择方案:
cd /path/to/repo/parentFolder/of/submodule
git ls-tree @ yourSubmodule
git rev-parse @:./yourSubmodule
Run Code Online (Sandbox Code Playgroud)
该rev-parse只返回子模块SHA1.
小智 9
在所需的项目文件夹中打开外壳,然后键入以下git命令:
git submodule
Run Code Online (Sandbox Code Playgroud)
结果输出如下所示:
<module commit> <module-path> (<module-branch)
...
Run Code Online (Sandbox Code Playgroud)
git rev-parse HEAD:path/to/submodule
Run Code Online (Sandbox Code Playgroud)
对于我的自动化用例,我发现这种方法比接受的答案的替代方案更好,因为它仅输出hipotetical 的提交 sha path/to/submodule。
PS:鸣谢并感谢heloman
| 归档时间: |
|
| 查看次数: |
6193 次 |
| 最近记录: |