man git-init-db (Commandes) - Creates an empty git repository

NAME

git-init-db - Creates an empty git repository

SYNOPSIS

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

OPTIONS

--template=<template_directory>
Provide the directory in from which templates will be used.
--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.

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 $ git-add .

prepare /path/to/my/codebase/.git directory 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