From: Stefan Beller Date: Tue, 27 Oct 2015 22:22:34 GMT Subject: Re: What's the ".git/gitdir" file? Message-ID: In-Reply-To: <87a8r4ary9.fsf@kyleam.com> On Tue, Oct 27, 2015 at 3:04 PM, Kyle Meyer wrote: > 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 is kept in the superprojects .git/modules/ directory. If you are in the submodule however you need to know where the repository is, so we have a file pointing at ..//.git/modules/ 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). > > -- > 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