我想在创建分支时在本地启动脚本。
我发现我必须使用post-checkout钩子并编写以下脚本:
#! /bin/sh
# update hook
oldrev=$1
newrev=$2
type=$3
branch_name="$(git symbolic-ref HEAD 2>/dev/null)"
echo "branch is $branch_name"
echo "oldrev is $oldrev and newrev is $newrev"
type_shortname(){
type="branch"
shortname="$(git symbolic-ref HEAD --short)"
}
NULL_SHA1=0000000000000000000000000000000000000000
if test $type = 1;then
type_shortname
fi
echo $type
echo $shortname
case $oldrev,$newrev in
$NULL_SHA1,*) action=create;;
*,*);;
esac
action_meth()
{
echo "create"
}
case $action,$type in
create,branch) action_meth;;
* );;
esac
exit 0
但是新的转速不是NULL_SHA1预期的,但完全相同的旧转速。从git文档看起来似乎合乎逻辑。然后action_meth()
没有回声。
我的问题是如何检测我们正在移动的分支是一个新创建的分支(当使用更新钩子服务器端时,本地作为new rev == NULL_SHA
的点似乎没问题。)< / p>
答案 0 :(得分:0)
我想在创建分支后调用客户端post-checkout hook 这意味着它并不意味着检测分支创建。
然后你可以测试是否:
git branch --contains
),