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.44.0.rc1.44.g96c8a0712e
10 .TH "GIT\-INIT" "1" "2024\-02\-19" "Git 2\&.44\&.0\&.rc1\&.44\&.g9" "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 [\-\-ref\-format=<format>]
38 [\-b <branch\-name> | \-\-initial\-branch=<branch\-name>]
39 [\-\-shared[=<permissions>]] [<directory>]
44 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)\&.
46 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\&.
48 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\&.
50 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)\&.
55 Only print error and warning messages; all other output will be suppressed\&.
60 Create a bare repository\&. If
62 environment is not set, it is set to the current working directory\&.
65 \-\-object\-format=<format>
67 Specify the given object format (hash algorithm) for the repository\&. The valid values are
74 Note: At present, there is no interoperability between SHA\-256 repositories and SHA\-1 repositories\&.
77 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\&.
79 \-\-ref\-format=<format>
81 Specify the given ref storage format for the repository\&. The valid values are:
92 for loose files with packed\-refs\&. This is the default\&.
96 \-\-template=<template\-directory>
98 Specify the directory from which templates will be used\&. (See the "TEMPLATE DIRECTORY" section below\&.)
101 \-\-separate\-git\-dir=<git\-dir>
103 Instead of initializing the repository as a directory to either
106 \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\&.
108 If this is a reinitialization, the repository will be moved to the specified path\&.
111 \-b <branch\-name>, \-\-initial\-branch=<branch\-name>
113 Use the specified name for the initial branch in the newly created repository\&. If not specified, fall back to the default name (currently
114 \fBmaster\fR, but this is subject to change in the future; the name can be customized via the
115 \fBinit\&.defaultBranch\fR
116 configuration variable)\&.
119 \-\-shared[=(false|true|umask|group|all|world|everybody|<perm>)]
121 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
123 are created with the requested permissions\&. When not specified, Git will use permissions reported by umask(2)\&.
125 The option can have the following values, defaulting to
127 if no value is given:
129 \fIumask\fR (or \fIfalse\fR)
131 Use permissions reported by umask(2)\&. The default, when
136 \fIgroup\fR (or \fItrue\fR)
138 Make the repository group\-writable, (and g+sx, since the git group may not be 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
141 will not remove read privileges from other (non\-group) users)\&. See
143 for how to exactly specify the repository permissions\&.
146 \fIall\fR (or \fIworld\fR or \fIeverybody\fR)
149 \fIgroup\fR, but make the repository readable by all users\&.
155 is a 3\-digit octal number prefixed with \(oq0` and each file will have mode
158 will override users\(cq umask(2) value (and not only loosen permissions as
164 will create a repository which is group\-readable, but not group\-writable or accessible to others\&.
166 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
170 bit for corresponding classes of users)\&.
174 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\&.
176 If you provide a \fIdirectory\fR, the command is run inside it\&. If this directory does not exist, it will be created\&.
177 .SH "TEMPLATE DIRECTORY"
179 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\&.
181 The template directory will be one of the following (in order):
191 the argument given with the
205 \fB$GIT_TEMPLATE_DIR\fR
206 environment variable;
218 \fBinit\&.templateDir\fR
219 configuration variable; or
230 the default template directory:
231 \fB/usr/share/git\-core/templates\fR\&.
234 The default template directory includes some directory structure, suggested "exclude patterns" (see \fBgitignore\fR(5)), and sample hook files\&.
236 The sample hooks are all disabled by default\&. To enable one of the sample hooks rename it by removing its \fB\&.sample\fR suffix\&.
238 See \fBgithooks\fR(5) for more general info on hook execution\&.
241 Start a new Git repository for an existing code base
248 $ cd /path/to/my/codebase
250 $ git add \&. \fB(2)\fR
251 $ git commit \fB(3)\fR
259 r lw(\n(.lu*75u/100u).
261 Create a /path/to/my/codebase/\&.git directory\&.
264 Add all existing files to the index\&.
267 Record the pristine state as the first commit in the history\&.
273 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:
277 Specify the directory from which templates will be copied\&. (See the "TEMPLATE DIRECTORY" section of
278 \fBgit-init\fR(1)\&.)
283 Allows overriding the default branch name e\&.g\&. when initializing a new repository\&.
287 Part of the \fBgit\fR(1) suite