1git-init(1) 2=========== 3 4NAME 5---- 6git-init - Create an empty git repository or reinitialize an existing one 7 8 9SYNOPSIS 10-------- 11'git-init' [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]] 12 13 14OPTIONS 15------- 16 17-- 18 19-q:: 20--quiet:: 21 22Only print error and warning messages, all other output will be suppressed. 23 24--bare:: 25 26Create a bare repository. If GIT_DIR environment is not set, it is set to the 27current working directory. 28 29--template=<template_directory>:: 30 31Provide the directory from which templates will be used. The default template 32directory is `/usr/share/git-core/templates`. 33 34When specified, `<template_directory>` is used as the source of the template 35files rather than the default. The template files include some directory 36structure, some suggested "exclude patterns", and copies of non-executing 37"hook" files. The suggested patterns and hook files are all modifiable and 38extensible. 39 40--shared[={false|true|umask|group|all|world|everybody|0xxx}]:: 41 42Specify that the git repository is to be shared amongst several users. This 43allows users belonging to the same group to push into that 44repository. When specified, the config variable "core.sharedRepository" is 45set so that files and directories under `$GIT_DIR` are created with the 46requested permissions. When not specified, git will use permissions reported 47by umask(2). 48 49The option can have the following values, defaulting to 'group' if no value 50is given: 51 52 - 'umask' (or 'false'): Use permissions reported by umask(2). The default, 53 when `--shared` is not specified. 54 55 - 'group' (or 'true'): Make the repository group-writable, (and g+sx, since 56 the git group may be not the primary group of all users). 57 58 - 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository 59 readable by all users. 60 61 - '0xxx': '0xxx' is an octal number and each file will have mode '0xxx' 62 Any option except 'umask' can be set using this option. '0xxx' will 63 override users umask(2) value, and thus, users with a safe umask (0077) 64 can use this option. '0640' will create a repository which is group-readable 65 but not writable. '0660' is equivalent to 'group'. 66 67By default, the configuration flag receive.denyNonFastForwards is enabled 68in shared repositories, so that you cannot force a non fast-forwarding push 69into it. 70 71-- 72 73 74DESCRIPTION 75----------- 76This command creates an empty git repository - basically a `.git` directory 77with subdirectories for `objects`, `refs/heads`, `refs/tags`, and 78template files. 79An initial `HEAD` file that references the HEAD of the master branch 80is also created. 81 82If the `$GIT_DIR` environment variable is set then it specifies a path 83to use instead of `./.git` for the base of the repository. 84 85If the object storage directory is specified via the `$GIT_OBJECT_DIRECTORY` 86environment variable then the sha1 directories are created underneath - 87otherwise the default `$GIT_DIR/objects` directory is used. 88 89Running `git-init` in an existing repository is safe. It will not overwrite 90things that are already there. The primary reason for rerunning `git-init` 91is to pick up newly added templates. 92 93Note that `git-init` is the same as `git-init-db`. The command 94was primarily meant to initialize the object database, but over 95time it has become responsible for setting up the other aspects 96of the repository, such as installing the default hooks and 97setting the configuration variables. The old name is retained 98for backward compatibility reasons. 99 100 101EXAMPLES 102-------- 103 104Start a new git repository for an existing code base:: 105+ 106---------------- 107$ cd /path/to/my/codebase 108$ git-init <1> 109$ git-add . <2> 110---------------- 111+ 112<1> prepare /path/to/my/codebase/.git directory 113<2> add all existing file to the index 114 115 116Author 117------ 118Written by Linus Torvalds <torvalds@osdl.org> 119 120Documentation 121-------------- 122Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>. 123 124GIT 125--- 126Part of the linkgit:git[1] suite