gpt4 book ai didi

git - 如何判断git-hook是否有rebase?

转载 作者:太空狗 更新时间:2023-10-29 14:47:43 26 4
gpt4 key购买 nike

基于此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]:如果在 issue14020 分支中提交了一些文本消息

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

最佳答案

如果你最终处于 headless 状态,你会在 rebase 提交上得到“(无分支)”。

与其使用 git branch 获取当前分支名称,不如使用 NAME=$(git rev-parse --abbrev-ref HEAD) 它将返回当前分支名称如果您处于 headless 模式,则分支或“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

关于git - 如何判断git-hook是否有rebase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16940782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com