41.2.2 Git模板
当执行git init或git clone创建版本库时,会自动在版本库中创建钩子脚本(.git/hooks/*)、忽略文件(.git/info/exclude)及其他文件,实际上这些文件均拷贝自模板目录。如果需要本地版本库使用定制的钩子脚本等文件,直接在模板目录内创建(文件或符号链接)会事半功倍。
Git按照下列顺序第一个确认的路径即为模板目录。
(1)如果执行git init或git clone命令时,提供—template=<DIR>参数,则使用指定的目录作为模板目录。
(2)由环境变量$GIT_TEMPLATE_DIR指定的模板目录。
(3)由Git配置变量init.templatedir指定的模板目录。
(4)默认的模板目录,根据Git安装路径的不同可能位于不同的目录下。可以通过下面命令确认其实际位置:
$echo$(dirname$(dirname$(git—html-path)))/git-core/templates
/usr/share/git-core/templates
如果在执行版本库初始化时传递了空的模板路径,则不会在版本库中创建钩子脚本等文件。
$git init—template=simplegit
Initialized empty Git repository in/path/to/my/workspace/simplegit/.git/
执行下面的命令,查看新创建的版本库.git目录下的文件。
$ls-F simplegit/.git/
HEAD config objects/refs/
可以看到不使用模板目录创建的版本库下面的文件少的可怜。而通过对模板目录下的文件的定制,可以使得在建立的版本库中包含预先设置好的钩子脚本、忽略文件、属性文件甚至config配置文件等。这给对服务器或对版本库操作有特殊要求的项目带来了方便。