检查目录是否是git存储库(无需cd进入)

时间:2016-09-15 18:35:16

标签: linux git bash

我可以使用完整的目录路径来确定给定目录是否是git存储库的shell命令是什么?具体来说,我希望能够在不在目录中的情况下执行此操作,而无需cd进入它。我也希望能够通过一个返回简单" true"的命令来做到这一点。或"假" (就像rev-parse --is-inside-work-tree那样),但它不是必需的。

4 个答案:

答案 0 :(得分:26)

使用git -C <path> rev-parse。如果<path>上的目录是git存储库,则返回0,否则返回错误代码。

答案 1 :(得分:2)

系统中的任何目录都可以是git工作副本。通过将.gitGIT_DIR环境变量设置为指向实际GIT_WORK_TREE目录和工作副本的根目录,可以将目录用作包含.git子目录的目录,或使用--git-dir--work-tree选项。有关详细信息,请参阅git man page

答案 2 :(得分:1)

我们也可以尝试0.74命令,如果输出如下:

git status

然后,该目录不是git存储库。

答案 3 :(得分:0)

在@Walk的评论中, git status如果不是回购协议,将引发致命消息。 echo $?将有助于捕获其错误与否。 如果它是git repo,则echo $?将为0,否则值为128