From d145144c3ba050a1a8c8296f337b77a18500af00 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 11 Jan 2007 12:58:10 -0800 Subject: [PATCH] Document git-init These days, the command does a lot more than just initialise the object database (such as setting default config-variables, installing template hooks...), and "git init" is actually a more sensible name nowadays. Signed-off-by: Junio C Hamano --- Documentation/git-init-db.txt | 91 +-------------------------- Documentation/git-init.txt | 114 +++++++++++++++++++++++++++++++++- 2 files changed, 115 insertions(+), 90 deletions(-) diff --git a/Documentation/git-init-db.txt b/Documentation/git-init-db.txt index bc3ba1493..5412135d7 100644 --- a/Documentation/git-init-db.txt +++ b/Documentation/git-init-db.txt @@ -11,96 +11,9 @@ SYNOPSIS 'git-init-db' [--template=] [--shared[=]] -OPTIONS -------- - --- - ---template=:: - -Provide the directory from which templates will be used. The default template -directory is `/usr/share/git-core/templates`. - -When specified, `` is used as the source of the template -files rather than the default. The template files include some directory -structure, some suggested "exclude patterns", and copies of non-executing -"hook" files. The suggested patterns and hook files are all modifiable and -extensible. - ---shared[={false|true|umask|group|all|world|everybody}]:: - -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' (or 'false'): Use permissions reported by umask(2). The default, - when `--shared` is not specified. - - - 'group' (or 'true'): Make the repository group-writable, (and g+sx, since - the git group may be not the primary group of all users). - - - 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository - readable by all users. - -By default, the configuration flag receive.denyNonFastforward is enabled -in shared repositories, so that you cannot force a non fast-forwarding push -into it. - --- - - DESCRIPTION ----------- -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. - -If the `$GIT_DIR` environment variable is set then it specifies a path -to use instead of `./.git` for the base of the repository. - -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. - -Running `git-init-db` in an existing repository is safe. It will not overwrite -things that are already there. The primary reason for rerunning `git-init-db` -is to pick up newly added templates. - -Note that `git-init` is the same as `git-init-db`. - - -EXAMPLES --------- - -Start a new git repository for an existing code base:: -+ ----------------- -$ cd /path/to/my/codebase -$ git-init-db <1> -$ git-add . <2> ----------------- -+ -<1> prepare /path/to/my/codebase/.git directory -<2> add all existing file to the index - - -Author ------- -Written by Linus Torvalds - -Documentation --------------- -Documentation by David Greaves, Junio C Hamano and the git-list . -GIT ---- -Part of the gitlink:git[7] suite +This is a synonym for gitlink:git-init[1]. Please refer to the +documentation of that command. diff --git a/Documentation/git-init.txt b/Documentation/git-init.txt index 36838c753..e1fd6884f 100644 --- a/Documentation/git-init.txt +++ b/Documentation/git-init.txt @@ -1 +1,113 @@ -include::git-init-db.txt[] +git-init(1) +=========== + +NAME +---- +git-init - Creates an empty git repository + + +SYNOPSIS +-------- +'git-init' [--template=] [--shared[=]] + + +OPTIONS +------- + +-- + +--template=:: + +Provide the directory from which templates will be used. The default template +directory is `/usr/share/git-core/templates`. + +When specified, `` is used as the source of the template +files rather than the default. The template files include some directory +structure, some suggested "exclude patterns", and copies of non-executing +"hook" files. The suggested patterns and hook files are all modifiable and +extensible. + +--shared[={false|true|umask|group|all|world|everybody}]:: + +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' (or 'false'): Use permissions reported by umask(2). The default, + when `--shared` is not specified. + + - 'group' (or 'true'): Make the repository group-writable, (and g+sx, since + the git group may be not the primary group of all users). + + - 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository + readable by all users. + +By default, the configuration flag receive.denyNonFastforward is enabled +in shared repositories, so that you cannot force a non fast-forwarding push +into it. + +-- + + +DESCRIPTION +----------- +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. + +If the `$GIT_DIR` environment variable is set then it specifies a path +to use instead of `./.git` for the base of the repository. + +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. + +Running `git-init` in an existing repository is safe. It will not overwrite +things that are already there. The primary reason for rerunning `git-init` +is to pick up newly added templates. + +Note that `git-init` is the same as `git-init-db`. The command +was primarily meant to initialize the object database, but over +time it has become responsible for setting up the other aspects +of the repository, such as installing the default hooks and +setting the configuration variables. The old name is retained +because people are so used to it and many existing documents +refer to it that way, and this will not change for some time to +come. + + +EXAMPLES +-------- + +Start a new git repository for an existing code base:: ++ +---------------- +$ cd /path/to/my/codebase +$ git-init <1> +$ git-add . <2> +---------------- ++ +<1> prepare /path/to/my/codebase/.git directory +<2> add all existing file to the index + + +Author +------ +Written by Linus Torvalds + +Documentation +-------------- +Documentation by David Greaves, Junio C Hamano and the git-list . + +GIT +--- +Part of the gitlink:git[7] suite + -- 2.30.2