我想 Hook 到一个新分支的创建。创建分支时或完成第一次推送时。一种或两种都可能吗?
最佳答案
接受的答案是使用 update hook
。我不确定这对每个人都有帮助,因为那是服务器端 Hook 。如果你推送你的新分支,它会起作用,但如何保持它纯粹在本地呢?
我正在创建从不推送的本地分支,所以我使用 post-checkout
代替。创建分支后,您通常不会在对它进行任何其他操作之前检查它吗?当我检测到一个新分支时,我会修改它并自动添加一个提交。之后,我可以根据它是否有提交历史来确定这是否是 checkout 时的新分支。
这是我的做法(我的钩子(Hook)在 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)
}
关于创建和/或推送新分支时的 Git 钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297606/