有没有办法指定相对于存储库的git commit.template?
对于配置,一个例子是
$ git config commit.template $HOME/.gitmessage.txt
但我想指定一个相对于存储库的.git文件夹的模板文件。
答案 0 :(得分:41)
This blog告诉我,如果模板文件的路径不是绝对的,那么路径被认为是相对于存储库根目录。
git config commit.template /absolute/path/to/file
or
git config commit.template relative-path-from-repository-root
答案 1 :(得分:13)
我使用了prepare-commit-msg钩子来解决这个问题。
首先使用提交消息的模板创建文件.git/commit-msg
,如
$ cat .git/commit-msg
My Commit Template
接下来创建一个包含内容
的文件.git/hooks/prepare-commit-msg
#!/bin/sh
firstLine=$(head -n1 $1)
if [ -z "$firstLine" ] ;then
commitTemplate=$(cat `git rev-parse --git-dir`/commit-msg)
echo -e "$commitTemplate\n $(cat $1)" > $1
fi
将新创建的文件标记为可执行文件:
chmod +x .git/hooks/prepare-commit-msg
这会将提交消息设置为模板的内容。
答案 2 :(得分:7)
您始终可以在提交时使用-t <file>
或--template=<file>
指定模板。
请参阅:http://git-scm.com/docs/git-commit
另一种选择可能是使用prepare-commit-msg
挂钩:https://stackoverflow.com/a/3525532/289099
答案 3 :(得分:0)
1。在项目目录中使用自定义模板创建文件。
在此示例中,项目的.git/
文件夹中:
$ cat << EOF > .git/.commit-msg-template
> My custom template
> # Comment in my template
> EOF
2。编辑项目config
文件夹中的.git/
文件,以将路径添加到自定义模板。
使用 git 命令:
$ git config commit.template .git/.commit-msg-template
或通过在 config 文件中添加以下几行:
[commit]
template = .git/.commit-msg-template
等等!