Basic and advanced features for initializing a Git repository – more content to be added.
By default, git init
will populate your new .git
directory with some auto-generated content, plus all of the content of the appropriate template directory.
If you don't specify a template directory, the default used is /usr/share/git-core/templates
, which contains something like this:
. ├── branches/ ├── description ├── hooks/ │ ├── applypatch-msg.sample* │ ├── commit-msg.sample* │ ├── fsmonitor-watchman.sample* │ ├── post-update.sample* │ ├── pre-applypatch.sample* │ ├── pre-commit.sample* │ ├── prepare-commit-msg.sample* │ ├── pre-push.sample* │ ├── pre-rebase.sample* │ ├── pre-receive.sample* │ └── update.sample* └── info/ └── exclude
Rather than accepting the default directory and content, it's common for developers to want to immediately register their own hooks, which means setting up an alternate template directory.
From the man page for “git init'':
TEMPLATE DIRECTORY Files and directories in the template directory whose name do not start with a dot will be copied to the $GIT_DIR after it is created. The template directory will be one of the following (in order): · the argument given with the --template option; · the contents of the $GIT_TEMPLATE_DIR environment variable; · the init.templateDir configuration variable; or · the default template directory: /usr/share/git-core/templates. The default template directory includes some directory structure, suggested "exclude patterns" (see gitignore(5)), and sample hook files. The sample hooks are all disabled by default, To enable one of the sample hooks rename it by removing its .sample suffix.