检查目录是否是git存储库(不必cd进去)

我可以使用什么shell命令,使用完整的目录path,确定给定的目录是否是git存储库? 具体来说,我希望能够做到这一点,而不必在目录中,而不必在CD中。 我也希望能够通过一个返回简单的“true”或者“false”的命令来做到这一点(就像在工作树里面进行的rev-parse一样),但这不是必须的。

Solutions Collecting From Web of "检查目录是否是git存储库(不必cd进去)"

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

系统中的任何目录都可以是一个git工作副本。 通过将GIT_DIRGIT_WORK_TREE环境变量设置为指向实际的.git目录和工作副本的根目录,或者使用--git-dir--work-tree --git-dir来指定一个.git子目录, --work-tree选项。 有关更多详细信息,请参阅git手册页 。

我们也可以尝试git status命令,如果输出如下所示:

fatal: Not a git repository (or any of the parent directories): .git

然后,该目录不是一个混帐存储库。