git:获取有效的GIT_DIR,如果当前目录是工作树子目录并且未设置$ GIT_DIR

时间:2013-04-23 07:50:15

标签: git

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

我想要类似的东西:

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

2 个答案:

答案 0 :(得分:7)

可以使用rev-parse

完成此操作
git rev-parse --git-dir

答案 1 :(得分:0)

这是一个纯粹的bash版本,当你在root中时会找到该目录。 (顺便说一下,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的终结者中工作。