我看了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然后由于某种原因删除换行符,这迫使人们编辑邮件以将评论放在他们自己的行上,如下所示:
2
git commit --amend
会导致与1.相同的问题,但它也会在第二个[branch-name]
之前添加,也会显示如下
如何修改上述脚本以解决用例1和2的问题?
谢谢
答案 0 :(得分:2)
请在你的钩子中尝试这个片段:
jépeg