【发布时间】:2017-01-23 21:27:20
【问题描述】:
我可以使用什么 shell 命令使用完整的目录路径来确定给定目录是否是 git 存储库?具体来说,我希望能够做到这一点,而不必在目录中,也不必 cd 进入它。我还希望能够使用返回简单“true”或“false”的命令来执行此操作(就像 rev-parse --is-inside-work-tree 所做的那样),但这不是必需的.
【问题讨论】:
-
test -d "$path/.git" -
还有
[[ -d "$PATH/.git" ]] && <other commands> -
你可以 grep 获取 .git 文件夹吗?或者你可以 cd 进入它然后检查然后 cd 回到当前工作目录?
-
@Siguza 我认为这是一种解决方案,但是如果该目录实际上不是一个 git 存储库,而只是包含一个名为 .git 的目录呢? (例如 .git 不包含 ORIG_HEAD、FETCH_HEAD 等)
-
@Ataraxia 然后我会考虑一个 broken git 存储库......但这是一个见仁见智的问题。如果您只想要完整/“有效”的 git 存储库,除了
.git检查之外,您最好测试git命令的错误代码。