Home Explore Blog CI



git

2nd chunk of `Documentation/git-init.adoc`
f8c323bf2e081e2ebed6f506472073bec93990fe6bad5b3000000001000007e4

`--separate-git-dir=<git-dir>`::
Instead of initializing the repository as a directory to either `$GIT_DIR` or
`./.git/`, 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.
+
If this is a reinitialization, the repository will be moved to the specified path.

`-b <branch-name>`::
`--initial-branch=<branch-name>`::
Use _<branch-name>_ for the initial branch in the newly created
repository.  If not specified, fall back to the default name (currently
`master`, but this is subject to change in the future; the name can be
customized via the `init.defaultBranch` configuration variable).

`--shared[=(false|true|umask|group|all|world|everybody|<perm>)]`::

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).
+
The option can have the following values, defaulting to `group` if no value
is given:
+
--
`umask`::
`false`::

Use permissions reported by `umask`(2). The default, when `--shared` is not
specified.

`group`::
`true`::

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 `0022`, using `group` will not remove read
privileges from other (non-group) users). See `0xxx` for how to exactly specify
the repository permissions.

`all`::
`world`::
`everybody`::

Same as `group`, but make the repository readable by all users.

_<perm>_::

_<perm>_ is a 3-digit octal number prefixed with `0` and each file
will have mode _<perm>_. _<perm>_ will override users' `umask`(2)

Title: Git Init Options for Repository Configuration
Summary
The git init command offers options to customize the repository setup, including separating the Git directory, specifying the initial branch, and configuring shared repository permissions to control access and collaboration among multiple users.