区分工作树文件夹的git命令是什么

时间:2019-05-10 00:33:20

标签: git

我注意到常规的git repo会将.git作为文件夹,而工作树repo会将.git作为文件。这可靠吗?

是否有一个git命令将它们区分开?

1 个答案:

答案 0 :(得分:2)

.git作为指向另一个存储库的文件称为gitlink,它不一定表示工作树。子模块也使用它们,它们也可以在其他不太常见的情况下使用。最初,符号链接是用于此目的的,但在Windows上效果不佳,在Windows上,符号链接需要特殊权限。

如果您想知道目录是在主存储库中还是在工作树中,则应比较git rev-parse --git-dirgit rev-parse --git-common-dir的输出。如果它们相同,则这是主存储库。如果它们不同,那就是工作树。

请注意,您必须使用最新的Git才能起作用。在(我相信)Git 2.13之前,git rev-parse --git-common-dir在某些情况下提供了不正确的结果,这会影响此检查。除了升级Git的版本外,没有其他方法可以正确检查这些版本。