X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-init-db.txt;h=8a150d861f5b4c3dc468d46fa09dbfce5be020fc;hb=HEAD;hp=ef1826ae672cb6537d497d027e5babe4988a42b0;hpb=1301c6eb412e7c5511b952a12e42c70ad56f028b;p=git.git diff --git a/Documentation/git-init-db.txt b/Documentation/git-init-db.txt index ef1826ae..8a150d86 100644 --- a/Documentation/git-init-db.txt +++ b/Documentation/git-init-db.txt @@ -8,22 +8,64 @@ git-init-db - Creates an empty git repository SYNOPSIS -------- -'git-init-db' +'git-init-db' [--template=] [--shared] + + +OPTIONS +------- +--template=:: + Provide the directory from which templates will be used. + The default template directory is `/usr/share/git-core/templates`. + +--shared:: + Specify that the git repository is to be shared amongst several users. + DESCRIPTION ----------- -This simply creates an empty git repository - basically a `.git` directory -and `.git/object/??/`, `.git/refs/heads` and `.git/refs/tags` directories, -and links `.git/HEAD` symbolically to `.git/refs/heads/master`. +This command creates an empty git repository - basically a `.git` directory +with subdirectories for `objects`, `refs/heads`, `refs/tags`, and +templated files. +An initial `HEAD` file that references the HEAD of the master branch +is also created. + +If `--template=` is specified, `` +is used as the source of the template files rather than the default. +The template files include some directory structure, some suggested +"exclude patterns", and copies of non-executing "hook" files. The +suggested patterns and hook files are all modifiable and extensible. -If the 'GIT_DIR' environment variable is set then it specifies a path +If the `$GIT_DIR` environment variable is set then it specifies a path to use instead of `./.git` for the base of the repository. -If the object storage directory is specified via the 'GIT_OBJECT_DIRECTORY' +If the object storage directory is specified via the `$GIT_OBJECT_DIRECTORY` environment variable then the sha1 directories are created underneath - otherwise the default `$GIT_DIR/objects` directory is used. -"git-init-db" won't hurt an existing repository. +A shared repository allows users belonging to the same group to push into that +repository. When specifying `--shared` the config variable "core.sharedRepository" +is set to 'true' so that directories under `$GIT_DIR` are made group writable +(and g+sx, since the git group may be not the primary group of all users). + +Running `git-init-db` in an existing repository is safe. It will not overwrite +things that are already there. The primary reason for rerunning `git-init-db` +is to pick up newly added templates. + + + +EXAMPLES +-------- + +Start a new git repository for an existing code base:: ++ +---------------- +$ cd /path/to/my/codebase +$ git-init-db <1> +$ git-add . <2> +---------------- ++ +<1> prepare /path/to/my/codebase/.git directory +<2> add all existing file to the index Author