基于此question,我制作了一个git hook prepare-commit-msg
#!/bin/sh
#
# Automatically adds branch name and branch description to every commit message.
#
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
它在简单提交上运行良好。示例 - [issue14020]: some text message
如果在issue14020分支中进行了提交。
然后我做了一个rebase我有这样的消息[(no branch)]: [issue14020]: some text message
。有没有办法跳过这个“没有分支”的部分?
答案 0 :(得分:3)
如果你最终处于无头状态,你会得到关于rebase提交的'(无分支)'。
使用git branch
而不是使用NAME=$(git rev-parse --abbrev-ref HEAD)
获取当前分支名称,如果您处于无头模式,请使用NAME=$(git rev-parse --abbrev-ref HEAD);
if [ "$NAME" != 'HEAD' ] ; then
DESCRIPTION=$(git config branch."$NAME".description);
echo "[$NAME]"': '$(cat "$1") > "$1";
if [ -n "$DESCRIPTION" ] ; then
echo "" >> "$1";
echo $DESCRIPTION >> "$1";
fi
fi
返回当前分支或“HEAD”。
重新编写脚本,然后变为:
{{1}}