4

从脚本中,如何确定当前的 GIT_DIR?如果没有被覆盖,它只是顶级目录或裸仓库的顶级目录。

我想要类似的东西:

[/git/repo1/subdir]$ git show-git-dir
/git/repo1/.git
4

2 回答 2

8

这可以通过rev-parse来完成:

git rev-parse --git-dir
于 2013-04-23T07:58:04.683 回答
0

这是一个纯 bash 版本,当你在根目录下时会找到该目录。(顺便说一下,Ikke 的解决方案更好)。

a=$PWD

while [ "$a" != "" ] && [ "$a" != '/' ];
do
    a=`dirname $a`;
    if [ -d $a/.git ];
    then
        echo "$a";
        break;
    fi
done

在 Windows 上,您可能必须添加另一个 [ "$a" != '\' ] 来测试这种情况,我目前无权检查 Msysgit 附带的 bash shell 是否支持“dirname”。

但适用于 Ubuntu 上的终结者。

于 2013-04-23T08:11:36.253 回答