当我可能在一个子目录中时,如何找到本地 git 存储库的路径

我正在寻找像 git list-path打印的东西 关联存储库的路径(.git目录)。

一点背景知识: 我已经在相当多的 项目/文件夹。其中一些是嵌套的,所以一个具有 echo 自己的存储库的目录是一个子文件夹,指向另一个具有另一个存储库的目录。

例如,在我的主目录(~)中,我使用 git 来跟踪我的点文件,但是 在文件夹 ~/photo/meta-mix/我有另一个项目,我跟踪与 现在,我已经在目录中设置了另一个项目 但我不知道它是否有自己的 所以我想知道这个目录是否是 version 以及其储存库的位置。

如何使用 git 命令执行此操作? git status可以给我吗

nothing to commit

都有情况下,当 ~/photo/meta-match/有自己的存储库或者当它只引用 ~的存储库时。

155483 次浏览
git rev-parse --show-toplevel

could be enough if executed within a git repo.
From git rev-parse man page:

--show-toplevel

Show the absolute path of the top-level directory.

For older versions (before 1.7.x), the other options are listed in "Is there a way to get the git root directory in one command?":

git rev-parse --git-dir

That would give the path of the .git directory.


The OP mentions:

git rev-parse --show-prefix

which returns the local path under the git repo root. (empty if you are at the git repo root)


Note: for simply checking if one is in a git repo, I find the following command quite expressive:

git rev-parse --is-inside-work-tree

And yes, if you need to check if you are in a .git git-dir folder:

git rev-parse --is-inside-git-dir