'\" t .\" Title: git-init .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 03/19/2016 .\" Manual: Git Manual .\" Source: Git 1.7.10.4 .\" Language: English .\" .TH "GIT\-INIT" "1" "03/19/2016" "Git 1\&.7\&.10\&.4" "Git Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" git-init \- Create an empty git repository or reinitialize an existing one .SH "SYNOPSIS" .sp .nf \fIgit init\fR [\-q | \-\-quiet] [\-\-bare] [\-\-template=] [\-\-separate\-git\-dir ] [\-\-shared[=]] [directory] .fi .sp .SH "DESCRIPTION" .sp 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\&. .sp If the $GIT_DIR environment variable is set then it specifies a path to use instead of \&./\&.git for the base of the repository\&. .sp 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\&. .sp Running \fIgit init\fR in an existing repository is safe\&. It will not overwrite things that are already there\&. The primary reason for rerunning \fIgit init\fR is to pick up newly added templates (or to move the repository to another place if \-\-separate\-git\-dir is given)\&. .SH "OPTIONS" .PP \-q, \-\-quiet .RS 4 Only print error and warning messages, all other output will be suppressed\&. .RE .PP \-\-bare .RS 4 Create a bare repository\&. If GIT_DIR environment is not set, it is set to the current working directory\&. .RE .PP \-\-template= .RS 4 Specify the directory from which templates will be used\&. (See the "TEMPLATE DIRECTORY" section below\&.) .RE .PP \-\-separate\-git\-dir= .RS 4 Instead of initializing the repository where it is supposed to be, place a filesytem\-agnostic git symbolic link there, pointing to the specified git 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\&. .RE .PP \-\-shared[=(false|true|umask|group|all|world|everybody|0xxx)] .RS 4 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 by umask(2)\&. .RE .sp The option can have the following values, defaulting to \fIgroup\fR if no value is given: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIumask\fR (or \fIfalse\fR): Use permissions reported by umask(2)\&. The default, when \-\-shared is not specified\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIgroup\fR (or \fItrue\fR): Make the repository group\-writable, (and g+sx, since the git group may be not the primary group of all users)\&. This is used to loosen the permissions of an otherwise safe umask(2) value\&. Note that the umask still applies to the other permission bits (e\&.g\&. if umask is \fI0022\fR, using \fIgroup\fR will not remove read privileges from other (non\-group) users)\&. See \fI0xxx\fR for how to exactly specify the repository permissions\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fIall\fR (or \fIworld\fR or \fIeverybody\fR): Same as \fIgroup\fR, but make the repository readable by all users\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fI0xxx\fR: \fI0xxx\fR is an octal number and each file will have mode \fI0xxx\fR\&. \fI0xxx\fR will override users\*(Aq umask(2) value (and not only loosen permissions as \fIgroup\fR and \fIall\fR does)\&. \fI0640\fR will create a repository which is group\-readable, but not group\-writable or accessible to others\&. \fI0660\fR will create a repo that is readable and writable to the current user and group, but inaccessible to others\&. .RE .sp By default, the configuration flag receive\&.denyNonFastForwards is enabled in shared repositories, so that you cannot force a non fast\-forwarding push into it\&. .sp If you name a (possibly non\-existent) directory at the end of the command line, the command is run inside the directory (possibly after creating it)\&. .SH "TEMPLATE DIRECTORY" .sp The template directory contains files and directories that will be copied to the $GIT_DIR after it is created\&. .sp The template directory used will (in order): .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The argument given with the \-\-template option\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The contents of the $GIT_TEMPLATE_DIR environment variable\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The init\&.templatedir configuration variable\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The default template directory: /usr/share/git\-core/templates\&. .RE .sp The default template directory includes some directory structure, some suggested "exclude patterns", and copies of sample "hook" files\&. The suggested patterns and hook files are all modifiable and extensible\&. .SH "EXAMPLES" .PP Start a new git repository for an existing code base .RS 4 .sp .if n \{\ .RS 4 .\} .nf $ cd /path/to/my/codebase $ git init \fB(1)\fR $ git add \&. \fB(2)\fR .fi .if n \{\ .RE .\} .sp \fB1. \fRprepare /path/to/my/codebase/\&.git directory .br \fB2. \fRadd all existing file to the index .br .RE .SH "GIT" .sp Part of the \fBgit\fR(1) suite