如何创建一个git hook来预先添加具有分支名称的提交消息?

时间:2016-08-05 17:46:26

标签: git bash

我看了another post提供了一些有用的prepare-commit-msg,我稍微修改了一下:

#!/bin/sh
#
# Automatically adds branch name and branch description to every commit message.
#
# todo:
# * breaks merge commit message
# * breaks git commit --amend

NAME=$(git branch | grep '*' | sed 's/* //')
DESCRIPTION=$(git config branch."$NAME".description)

echo "[$NAME]"' '$(cat "$1") > "$1"
if [ -n "$DESCRIPTION" ]
then
   echo "" >> "$1"
   echo $DESCRIPTION >> "$1"
fi

采取"快乐的道路"那就是:

git add -A
git commit -m 'Some commit message'

将按预期工作,输出:

some-modular-app git:test-commit-hooks ❯ log | grep 9406dfb
* 9406dfb - [test-commit-hooks] Make edit (2 hours ago) <mbigras>

如果您使用以下两种情况不起作用:

1

git commit

输入vim然后由于某种原因删除换行符,这迫使人们编辑邮件以将评论放在他们自己的行上,如下所示:

enter image description here

enter image description here

2

git commit --amend

会导致与1.相同的问题,但它也会在第二个[branch-name]之前添加,也会显示如下 enter image description here

enter image description here

如何修改上述脚本以解决用例1和2的问题?

谢谢

1 个答案:

答案 0 :(得分:2)

请在你的钩子中尝试这个片段:

jépeg