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