在大存储中,如何检测仅包含裸 git 存储库的所有文件夹?
我的意思不是仅仅寻找 git 裸仓库的常用内容或某些内容,而是真正有效的仓库。
当前方法:
这里的答案只是找到具有基本内容的文件夹,这些文件夹可能看起来像一个 git 裸存储库,因此我们可以改进它,尝试git status
在与此基本结构匹配的每个文件夹上执行,但我不确定这是否是确保这一点的最佳方法一个裸存储库,并不是说 git status 返回fatal: this operation must be run in a work tree
裸存储库的错误,要求我们假设它意味着一个裸存储库。因此,我们必须期望每次检查都收到该输出,并且仅假设它是有效的 git 裸存储库。
有没有更好的方法找到它们?
您应该以 Git 检测它们的方式检测它们,这在您引用的答案中进行了概述。也就是说,您需要以下内容:
objects/
目录;refs/
目录;和HEAD
符号链接或HEAD
要求正确格式的文件。确切的规范记录在setup.c
.
如果您怀疑是 Git 存储库,则可以更改它并运行git rev-parse --git-dir
,如果您在 Git 存储库中,它将成功退出,否则将失败退出。您还可以使用git rev-parse --is-bare-repository
和查找true
或false
来确定您的存储库是否是裸的。
如果您不想更改到存储库,则可以使用git -C <DIR> rev-parse --git-dir
和 类似 对提到的目录进行操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句