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

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

你知道任何 git 命令可以做到这一点吗?

4

1 回答 1

2

对于第 1 项,使用git rev-parse --is-inside-work-tree. 这:

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

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

对于第 2 项——“验证”存储库——这完全取决于你所说的“验证”是什么意思。

于 2018-10-04T20:46:38.007 回答