3

基于这个问题,我做了一个 git hookprepare-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 分支中提交。

但后来我做了一个变基,我收到了这样的消息[(no branch)]: [issue14020]: some text message。有没有办法跳过这个“无分支”部分?

4

1 回答 1

4

如果您最终处于无头状态,您会在 rebase 提交中获得“(无分支)”。

如果您处于无头模式,则使用 which 将返回当前分支或“HEAD” ,而不是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
于 2013-06-05T13:23:51.257 回答