是否可以通过编程方式找到 .git 目录的路径,包括子模块?
我正在尝试编写一个安装 git Hook 的脚本,但我找不到找到项目的 .git 目录的直接方法。理想情况下,它应涵盖以下情况:
- 项目根目录
- 在项目的子目录中
- 在项目中子模块的根目录
- 在项目中子模块的子目录中
我可以手动完成所有这些,但我宁愿不解析子模块的 .git 文件。
编辑:我也对 python 中的解决方案感兴趣。
最佳答案
git rev-parse --git-dir
似乎是你想要的。我刚刚用一个子模块测试了它:
cd mymodule
git rev-parse --git-dir # --> .git
git submodule add ssh://.../path/to/mysubmodule
cd mysubmodule
git rev-parse --git-dir # --> /home/.../mymodule/.git/modules/mysubmodule
这让我很惊讶,因为在mysubmodule
中有一个.git
,但结果却是一个文件,内容如下:
gitdir: ../.git/modules/mysubmodule
关于git - 以编程方式获取 bash 中 git 目录的路径(包括子模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146163/