Re: What's the ".git/gitdir" file?
- From
Stefan Beller <sbeller@google.com>
- Date
- Oct 27, 2015, 22:22 UTC
- Message-ID
- <CAGZ79ka0XvmvVpX5WrpeEBXBWKA41RTZm4p7q=QtUTFy18hkoA@mail.gmail.com>
- In-Reply-To
- <87a8r4ary9.fsf@kyleam.com>
On Tue, Oct 27, 2015 at 3:04 PM, Kyle Meyer <kyle@kyleam.com> wrote:
Show 25 quoted lines
> Hello, > > When a ".git" file points to another repo, a ".git/gitdir" file is > created in that repo. > > For example, running > > $ mkdir repo-a repo-b > $ cd repo-a > $ git init > $ cd ../repo-b > $ echo "gitdir: ../repo-a/.git" > .git > $ git status > > results in a file "repo-a/.git/gitdir" that contains > > $ cat repo-a/.git/gitdir > .git > > I don't see this file mentioned in the gitrepository-layout manpage, > and my searches haven't turned up any information on it. What's the > purpose of ".git/gitdir"? Are there cases where it will contain > something other than ".git"? > > Thanks.
It's designed for submodules to work IIUC.
Back in the day each git submodule had its own .git directory keeping its local objects.
Nowadays the repository of submodule <name> is kept in the superprojects .git/modules/<name> directory.
If you are in the submodule however you need to know where the repository is, so we have a file pointing at ../<up until superprojects root dir>/.git/modules/<name> directory.
If not using submodules, I'd expect that file to not be there. If you have a file .git/gitdir which points to plain .git, this is technically correct, indicating where to find the repository (containing objects etc).
Show 8 quoted lines
> > -- > Kyle > git version 2.6.1 > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html