如何找到.git/hooks当前Git存储库目录的完整路径?
我看到以下问题:
我可能在git存储库目录结构的任何地方,例如
/home/user/project/.git/hooks
Run Code Online (Sandbox Code Playgroud)
我在文件夹中
/home/user/project/foo/bar/baz/
Run Code Online (Sandbox Code Playgroud)
较新的git版本不会将子模块元数据放入.git/主存储库中,.git而只是一个文件,例如
$ cat /home/user/project/vendor/foo/.git
gitdir: ../../.git/modules/vendor/foo
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,钩子dir在
/home/user/project/.git/modules/vendor/foo/hooks
Run Code Online (Sandbox Code Playgroud) 是否可以以编程方式找到 .git 目录的路径,包括子模块?
我正在尝试编写一个安装 git hook 的脚本,但我找不到一种直接的方法来查找项目的 .git 目录。理想情况下,它应该涵盖以下情况:
我可以手动完成所有这些,但我宁愿不解析子模块的 .git 文件。
编辑:我也对 python 中的解决方案感兴趣。