On Tue, Oct 27, 2015 at 3:04 PM, Kyle Meyer <kyle@xxxxxxxxxx> 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 <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). > > -- > Kyle > git version 2.6.1 > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html