NAME
----
-git-init - Create an empty git repository or reinitialize an existing one
+git-init - Create an empty Git repository or reinitialize an existing one
SYNOPSIS
--------
-'git init' [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]] [directory]
+[verse]
+'git init' [-q | --quiet] [--bare] [--template=<template_directory>]
+ [--separate-git-dir <git dir>]
+ [--shared[=<permissions>]] [directory]
DESCRIPTION
-----------
-This command creates an empty git repository - basically a `.git`
+This command creates an empty Git repository - basically a `.git`
directory with subdirectories for `objects`, `refs/heads`,
`refs/tags`, and template files. An initial `HEAD` file that
references the HEAD of the master branch is also created.
Running 'git init' in an existing repository is safe. It will not
overwrite things that are already there. The primary reason for
-rerunning 'git init' is to pick up newly added templates.
+rerunning 'git init' is to pick up newly added templates (or to move
+the repository to another place if --separate-git-dir is given).
OPTIONS
-------
Specify the directory from which templates will be used. (See the "TEMPLATE
DIRECTORY" section below.)
+--separate-git-dir=<git dir>::
+
+Instead of initializing the repository where it is supposed to be,
+place a filesytem-agnostic Git symbolic link there, pointing to the
+specified path, and initialize a Git repository at the path. The
+result is Git repository can be separated from working tree. If this
+is reinitialization, the repository will be moved to the specified
+path.
+
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]::
-Specify that the git repository is to be shared amongst several users. This
+Specify that the Git repository is to be shared amongst several users. This
allows users belonging to the same group to push into that
repository. When specified, the config variable "core.sharedRepository" is
set so that files and directories under `$GIT_DIR` are created with the
-requested permissions. When not specified, git will use permissions reported
+requested permissions. When not specified, Git will use permissions reported
by umask(2).
The option can have the following values, defaulting to 'group' if no value
EXAMPLES
--------
-Start a new git repository for an existing code base::
+Start a new Git repository for an existing code base::
+
----------------
$ cd /path/to/my/codebase