我想挂钩创建一个新的分支。创建分支时或第一次完成时。一种或两种可能吗?
答案 0 :(得分:14)
接受的答案是使用update hook
。我不确定这对每个人都有帮助,因为那是一个服务器端钩子。如果你推动你的新分支,它会工作,但如果保持纯粹的本地呢?
我正在创建永不推送的本地分支,因此我使用的是post-checkout
。创建分支后,通常不会在做任何其他操作之前检查它吗?当我检测到新分支时,我会修改它并自动添加提交。之后,我可以通过是否有提交历史来确定这是否是结帐时的新分支。
我是这样做的(我的钩子是bash):
true=1
false=0
isNewBranch()
{
local logQuery=$(git log --all --not $(git rev-list --no-walk --exclude=refs/heads/$(getBranchName) --exclude=HEAD --all))
if [ -z $logQuery ]; then
echo $true
else
echo $false
fi
}
getBranchName()
{
echo $(git rev-parse --abbrev-ref HEAD)
}
答案 1 :(得分:8)
这是更新挂钩,它为新的refs得到零sha,分支会说head不是标签