3 .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
7 .\" Source: Git 2.47.0.rc0
10 .TH "GIT\-INIT" "1" "2024-09-25" "Git 2\&.47\&.0\&.rc0" "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 \fBgit init\fR [\fB\-q\fR | \fB\-\-quiet\fR] [\fB\-\-bare\fR] [\fB\-\-template=\fR\fI<template\-directory>\fR]
36 [\fB\-\-separate\-git\-dir\fR \fI<git\-dir>\fR] [\fB\-\-object\-format=\fR\fI<format>\fR]
37 [\fB\-\-ref\-format=\fR\fI<format>\fR]
38 [\fB\-b\fR \fI<branch\-name>\fR | \fB\-\-initial\-branch=\fR\fI<branch\-name>\fR]
39 [\fB\-\-shared\fR[\fB=\fR\fI<permissions>\fR]] [\fI<directory>\fR]
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 \fBgit init\fR in an existing repository is safe\&. It will not overwrite things that are already there\&. The primary reason for rerunning \fBgit init\fR is to pick up newly added templates (or to move the repository to another place if \fB\-\-separate\-git\-dir\fR is given)\&.
52 \fB\-q\fR, \fB\-\-quiet\fR
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 \fB\-\-object\-format=\fR\fI<format>\fR
66 Specify the given object
68 (hash algorithm) for the repository\&. The valid values are
75 Note: At present, there is no interoperability between SHA\-256 repositories and SHA\-1 repositories\&.
78 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\&.
80 \fB\-\-ref\-format=\fR\fI<format>\fR
82 Specify the given ref storage
84 for the repository\&. The valid values are:
95 for loose files with packed\-refs\&. This is the default\&.
107 for the reftable format\&. This format is experimental and its internals are subject to change\&.
111 \fB\-\-template=\fR\fI<template\-directory>\fR
113 Specify the directory from which templates will be used\&. (See the "TEMPLATE DIRECTORY" section below\&.)
116 \fB\-\-separate\-git\-dir=\fR\fI<git\-dir>\fR
118 Instead of initializing the repository as a directory to either
121 \fB\&./\&.git/\fR, create a text file there containing the path to the actual repository\&. This file acts as a filesystem\-agnostic Git symbolic link to the repository\&.
123 If this is a reinitialization, the repository will be moved to the specified path\&.
126 \fB\-b\fR \fI<branch\-name>\fR, \fB\-\-initial\-branch=\fR\fI<branch\-name>\fR
130 for the initial branch in the newly created repository\&. If not specified, fall back to the default name (currently
131 \fBmaster\fR, but this is subject to change in the future; the name can be customized via the
132 \fBinit\&.defaultBranch\fR
133 configuration variable)\&.
136 \fB\-\-shared\fR[\fB=\fR(\fBfalse\fR|\fBtrue\fR|\fBumask\fR|\fBgroup\fR|\fBall\fR|\fBworld\fR|\fBeverybody\fR|\fI<perm>\fR)]
138 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
139 \fBcore\&.sharedRepository\fR
140 is set so that files and directories under
142 are created with the requested permissions\&. When not specified, Git will use permissions reported by
145 The option can have the following values, defaulting to
147 if no value is given:
149 \fBumask\fR, \fBfalse\fR
151 Use permissions reported by
152 \fBumask\fR(2)\&. The default, when
157 \fBgroup\fR, \fBtrue\fR
159 Make the repository group\-writable, (and
160 \fBg+sx\fR, since the git group may not be the primary group of all users)\&. This is used to loosen the permissions of an otherwise safe
161 \fBumask\fR(2) value\&. Note that the umask still applies to the other permission bits (e\&.g\&. if umask is
164 will not remove read privileges from other (non\-group) users)\&. See
166 for how to exactly specify the repository permissions\&.
169 \fBall\fR, \fBworld\fR, \fBeverybody\fR
172 \fBgroup\fR, but make the repository readable by all users\&.
178 is a 3\-digit octal number prefixed with
180 and each file will have mode
183 will override users\*(Aq
184 \fBumask\fR(2) value (and not only loosen permissions as
190 will create a repository which is group\-readable, but not group\-writable or accessible to others\&.
192 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
196 bit for corresponding classes of users)\&.
200 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\&.
202 If you provide a \fI<directory>\fR, the command is run inside it\&. If this directory does not exist, it will be created\&.
203 .SH "TEMPLATE DIRECTORY"
205 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\&.
207 The template directory will be one of the following (in order):
217 the argument given with the
231 \fB$GIT_TEMPLATE_DIR\fR
232 environment variable;
244 \fBinit\&.templateDir\fR
245 configuration variable; or
256 the default template directory:
257 \fB/usr/share/git\-core/templates\fR\&.
260 The default template directory includes some directory structure, suggested "exclude patterns" (see \fBgitignore\fR(5)), and sample hook files\&.
262 The sample hooks are all disabled by default\&. To enable one of the sample hooks rename it by removing its \fB\&.sample\fR suffix\&.
264 See \fBgithooks\fR(5) for more general info on hook execution\&.
267 Start a new Git repository for an existing code base
274 $ cd /path/to/my/codebase
276 $ git add \&. \fB(2)\fR
277 $ git commit \fB(3)\fR
284 r lw(\n(.lu*75u/100u).
287 \fB/path/to/my/codebase/\&.git\fR
291 Add all existing files to the index\&.
294 Record the pristine state as the first commit in the history\&.
300 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:
302 \fBinit\&.templateDir\fR
304 Specify the directory from which templates will be copied\&.
307 \fBinit\&.defaultBranch\fR
309 Allows overriding the default branch name e\&.g\&. when initializing a new repository\&.
312 \fBinit\&.defaultObjectFormat\fR
314 Allows overriding the default object format for new repositories\&. See
315 \fB\-\-object\-format=\fR
317 \fBgit-init\fR(1)\&. Both the command line option and the
318 \fBGIT_DEFAULT_HASH\fR
319 environment variable take precedence over this config\&.
322 \fBinit\&.defaultRefFormat\fR
324 Allows overriding the default ref storage format for new repositories\&. See
325 \fB\-\-ref\-format=\fR
327 \fBgit-init\fR(1)\&. Both the command line option and the
328 \fBGIT_DEFAULT_REF_FORMAT\fR
329 environment variable take precedence over this config\&.
333 Part of the \fBgit\fR(1) suite