diff --git a/Documentation/gitrepository-layout.txt b/Documentation/gitrepository-layout.txt index 5f8d5456fa..f0eef765b9 100644 --- a/Documentation/gitrepository-layout.txt +++ b/Documentation/gitrepository-layout.txt @@ -12,12 +12,24 @@ $GIT_DIR/* DESCRIPTION ----------- -You may find these things in your Git repository (`.git` -directory for a repository associated with your working tree, or -`.git` directory for a public 'bare' repository. It is -also possible to have a working tree where `.git` is a plain -ASCII file containing `gitdir: `, i.e. the path to the -real Git repository). +A Git repository comes in two different flavours: + + * a `.git` directory at the root of the working tree; + + * a `.git` directory that is a 'bare' repository + (i.e. without its own working tree), that is typically used for + exchanging histories with others by pushing into it and fetching + from it. + +*Note*: Also you can have a plain text file `.git` at the root of +your working tree, containing `gitdir: ` to point at the real +directory that has the repository. This mechanism is often used for +a working tree of a submodule checkout, to allow you in the +containing superproject to `git checkout` a branch that does not +have the submodule. The `checkout` has to remove the entire +submodule working tree, without losing the submodule repository. + +These things may exist in a Git repository. objects:: Object store associated with this repository. Usually