git检查工作副本存储库是否存在并对其进行验证

时间:2018-10-04 20:13:25

标签: git validation repository local working-copy

  1. 我正在寻找一种方法来针对git存储库中的 local 目录进行测试。
    我不想仅通过sh / bash检查{ 1}}子目录存在,但如果有子目录,则使用专用的git命令。

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

您知道执行此操作的任何git命令吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

对于项目2(“验证”存储库),这完全取决于您“验证”的含义。