是否可以通过编程方式找到包含子模块的.git目录的路径?以编程方式获取bash中的git目录路径(包括子模块)
我想写一个脚本,安装一个git钩子,但我找不到一个简单的方法来找到项目的.git目录。理想情况下,应包括以下情况:
- 在项目
- 在子模块的子目录内的项目
- 在项目
- 的子目录中的子模块的根目录的根目录项目 内
我可以手动完成所有这些,但我宁愿不解析子模块的.git文件。
编辑:我也会对python中的解决方案感兴趣。
是否可以通过编程方式找到包含子模块的.git目录的路径?以编程方式获取bash中的git目录路径(包括子模块)
我想写一个脚本,安装一个git钩子,但我找不到一个简单的方法来找到项目的.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
howabout使用'找到'来搜索'.git'目录? – 2013-02-28 21:42:42
@Fredrik你怎么知道有多少目录上去?还有,如果有一个名称完全相同的目录? – 2013-02-28 21:44:16
重复http://stackoverflow.com/questions/14073053/find-path-to-git-hooks-directory-on-the-shell – qqx 2013-02-28 21:55:33