SYNOPSIS

git-init-db [--template=<template_directory>] [--shared]

OPTIONS

--template=<template_directory>

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 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=<template_directory> is specified, <template_directory> 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 to use instead of ./.git for the base of the repository.

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.

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

Written by Linus Torvalds <torvalds@osdl.org>

Documentation

Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT

Part of the git(7) suite