3 .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
7 .\" Source: Git 2.42.0.424.gceadf0f3cf
10 .TH "GIT\-INIT" "1" "2023\-10\-20" "Git 2\&.42\&.0\&.424\&.gceadf0" "Git Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
25 .\" disable justification (adjust text to left margin only)
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
31 git-init \- Create an empty Git repository or reinitialize an existing one
35 \fIgit init\fR [\-q | \-\-quiet] [\-\-bare] [\-\-template=<template\-directory>]
36 [\-\-separate\-git\-dir <git\-dir>] [\-\-object\-format=<format>]
37 [\-b <branch\-name> | \-\-initial\-branch=<branch\-name>]
38 [\-\-shared[=<permissions>]] [<directory>]
43 This command creates an empty Git repository \- basically a \fB\&.git\fR directory with subdirectories for \fBobjects\fR, \fBrefs/heads\fR, \fBrefs/tags\fR, and template files\&. An initial branch without any commits will be created (see the \fB\-\-initial\-branch\fR option below for its name)\&.
45 If the \fB$GIT_DIR\fR environment variable is set then it specifies a path to use instead of \fB\&./\&.git\fR for the base of the repository\&.
47 If the object storage directory is specified via the \fB$GIT_OBJECT_DIRECTORY\fR environment variable then the sha1 directories are created underneath \- otherwise the default \fB$GIT_DIR/objects\fR directory is used\&.
49 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)\&.
54 Only print error and warning messages; all other output will be suppressed\&.
59 Create a bare repository\&. If
61 environment is not set, it is set to the current working directory\&.
64 \-\-object\-format=<format>
66 Specify the given object format (hash algorithm) for the repository\&. The valid values are
73 Note: At present, there is no interoperability between SHA\-256 repositories and SHA\-1 repositories\&.
76 Historically, we warned that SHA\-256 repositories may later need backward incompatible changes when we introduce such interoperability features\&. Today, we only expect compatible changes\&. Furthermore, if such changes prove to be necessary, it can be expected that SHA\-256 repositories created with today\(cqs Git will be usable by future versions of Git without data loss\&.
78 \-\-template=<template\-directory>
80 Specify the directory from which templates will be used\&. (See the "TEMPLATE DIRECTORY" section below\&.)
83 \-\-separate\-git\-dir=<git\-dir>
85 Instead of initializing the repository as a directory to either
88 \fB\&./\&.git/\fR, create a text file there containing the path to the actual repository\&. This file acts as filesystem\-agnostic Git symbolic link to the repository\&.
90 If this is reinitialization, the repository will be moved to the specified path\&.
93 \-b <branch\-name>, \-\-initial\-branch=<branch\-name>
95 Use the specified name for the initial branch in the newly created repository\&. If not specified, fall back to the default name (currently
96 \fBmaster\fR, but this is subject to change in the future; the name can be customized via the
97 \fBinit\&.defaultBranch\fR
98 configuration variable)\&.
101 \-\-shared[=(false|true|umask|group|all|world|everybody|<perm>)]
103 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
105 are created with the requested permissions\&. When not specified, Git will use permissions reported by umask(2)\&.
107 The option can have the following values, defaulting to
109 if no value is given:
111 \fIumask\fR (or \fIfalse\fR)
113 Use permissions reported by umask(2)\&. The default, when
118 \fIgroup\fR (or \fItrue\fR)
120 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
123 will not remove read privileges from other (non\-group) users)\&. See
125 for how to exactly specify the repository permissions\&.
128 \fIall\fR (or \fIworld\fR or \fIeverybody\fR)
131 \fIgroup\fR, but make the repository readable by all users\&.
137 is a 3\-digit octal number prefixed with \(oq0` and each file will have mode
140 will override users\(cq umask(2) value (and not only loosen permissions as
146 will create a repository which is group\-readable, but not group\-writable or accessible to others\&.
148 will create a repo that is readable and writable to the current user and group, but inaccessible to others (directories and executable files get their
152 bit for corresponding classes of users)\&.
156 By default, the configuration flag \fBreceive\&.denyNonFastForwards\fR is enabled in shared repositories, so that you cannot force a non fast\-forwarding push into it\&.
158 If you provide a \fIdirectory\fR, the command is run inside it\&. If this directory does not exist, it will be created\&.
159 .SH "TEMPLATE DIRECTORY"
161 Files and directories in the template directory whose name do not start with a dot will be copied to the \fB$GIT_DIR\fR after it is created\&.
163 The template directory will be one of the following (in order):
173 the argument given with the
187 \fB$GIT_TEMPLATE_DIR\fR
188 environment variable;
200 \fBinit\&.templateDir\fR
201 configuration variable; or
212 the default template directory:
213 \fB/usr/share/git\-core/templates\fR\&.
216 The default template directory includes some directory structure, suggested "exclude patterns" (see \fBgitignore\fR(5)), and sample hook files\&.
218 The sample hooks are all disabled by default\&. To enable one of the sample hooks rename it by removing its \fB\&.sample\fR suffix\&.
220 See \fBgithooks\fR(5) for more general info on hook execution\&.
223 Start a new Git repository for an existing code base
230 $ cd /path/to/my/codebase
232 $ git add \&. \fB(2)\fR
233 $ git commit \fB(3)\fR
241 r lw(\n(.lu*75u/100u).
243 Create a /path/to/my/codebase/\&.git directory\&.
246 Add all existing files to the index\&.
249 Record the pristine state as the first commit in the history\&.
255 Everything below this line in this section is selectively included from the \fBgit-config\fR(1) documentation\&. The content is the same as what\(cqs found there:
259 Specify the directory from which templates will be copied\&. (See the "TEMPLATE DIRECTORY" section of
260 \fBgit-init\fR(1)\&.)
265 Allows overriding the default branch name e\&.g\&. when initializing a new repository\&.
269 Part of the \fBgit\fR(1) suite