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

Ata*_*xia 15 linux git bash

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

ypn*_*nos 27

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

  • 注意:对于git存储库的任何子目录,这也将返回0. (6认同)
  • `git -C &lt;path&gt; rev-parse 2&gt;/dev/null` 用于更清晰的脚本集成 (3认同)
  • 为了补充答案和评论: `git -C $REPO_DIR rev-parse 2&gt;/dev/null` `exit_code=$(echo $?)` `if [ "$exit_code" -ne 0 ] ; 然后 echo "$REPO_DIR 不是 git 存储库" fi` (2认同)

Wal*_*alk 6

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

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

那么,该目录不是 git 存储库。