git 检查工作副本存储库是否存在并验证它

git check if working copy repository exists and validate it

  1. 我正在寻找一种方法来测试 local 目录是否存在 git 存储库。
    我不会就像只是通过 sh/bash 检查 .git 子目录是否存在,而是使用专用的 git 命令,如果有的话。

  2. 我想通过 git 命令验证在 local 目录中可能找到的 git 存储库。

你知道任何git命令吗?

对于项目 1,使用 git rev-parse --is-inside-work-tree。这个:

  • 如果您在 Git 存储库中但不在其工作树中(即在裸存储库中),则打印 false
  • 如果您在具有工作树的 Git 存储库中,则打印 true;或
  • 错误(打印 fatal: not a git repository (or any parent up to... 到 stderr)如果你不在 Git 存储库中。

但是请注意,如果您所在的 Git 存储库的工作树已损坏或以某种方式被修改,Git 将在此处打印 true。如果你传递 --git-dir= 和有效存储库的路径,Git 总是 认为你在工作树中(因为你是)。如果打印出 truefalse,则此命令的退出状态为零,如果产生错误,则退出状态为非零。

对于第 2 项——"validating" 存储库——这完全取决于你所说的 "validate"。