我正在寻找一种方法来测试 local 目录是否存在 git 存储库。
我不想只通过 sh/bash 检查.git
子目录存在,但如果有,则使用专用的 git 命令。我想通过 git 命令验证在该本地 目录中可能找到的 git 存储库。
你知道任何 git 命令吗?
最佳答案
对于项目 1,使用 git rev-parse --is-inside-work-tree
。这:
- 如果您在 Git 存储库中但不在其工作树中(即在裸存储库中),则打印
false
; - 如果您在具有工作树的 Git 存储库中,则打印
true
;或 - 错误(打印
fatal: not a git repository (or any parent up to...
to stderr) if you are not in a Git repository.
但是请注意,如果您所在的 Git 存储库中的工作树已损坏或以某种方式被修改,Git 将在此处打印 true
。如果您传递 --git-dir=
和有效存储库的路径,Git 总是 认为您在工作树中(因为您是)。如果打印出 true
或 false
,则此命令的退出状态为零,如果产生错误,则退出状态为非零。
对于第 2 项——“验证”存储库——这完全取决于你所说的“验证”是什么意思。
关于git 检查工作副本存储库是否存在并验证它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52654471/