创建和/或推送新分支时Git挂钩

Ras*_*sen 23 git

我想挂钩创建一个新的分支.创建分支时或第一次完成时.一种或两种可能吗?

Buv*_*inJ 16

接受的答案说要使用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)
}
Run Code Online (Sandbox Code Playgroud)


jth*_*ill 8

它是更新钩子,它为新的refs得到零sha,分支会说head不是标签

  • 文档链接供参考:http://git-scm.com/book/en/Customizing-Git-Git-Hooks (3认同)
  • 有人可以分享这个的实现吗? (2认同)