I'm looking for something like git list-path
printing the
path of the associated repository (the .git
directory).
A bit of background: I have set up git version control on quite a few of my projects/folders. Some of them are nested, so one directory with echo own repository is a subfolder to another directory tracked with another repository.
E.g. in my home directory (~
) I use git to track my dot files, but
in folder ~/photo/meta-mix/
I have another project I track with a
separate repository. Now, say,I have set up another project in directory
~/photo/meta-match/
, but I don't know anymore whether it has its own
repository. So I want to find out whether this directory is version
controlled and where its repository is.
How can I do this with a git command? git status
can give me
nothing to commit
in both cases, when ~/photo/meta-match/
has its own repository or when it just refers to the repository of ~
.
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