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>.