30

我想加入一个新分支的创建。无论是在创建分支时还是在第一次推送完成时。一种或两种可能吗?

4

2 回答 2

23

接受的答案说使用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)
    }
于 2016-01-27T15:51:43.463 回答
12

这是更新钩子,它为新的参考获得零 sha,分支会说头而不是标签

于 2013-01-12T20:54:02.517 回答