2013-01-12 8 views

risposta

5

E 'il gancio di aggiornamento, si ottiene uno sha pari a zero per i nuovi arbitri, rami diranno teste non tag

+3

collegamento Documentazione di riferimento: http://git-scm.com/book/en/Customizing-Git-Git-Hooks – Useless

3

La risposta accettata dice di usare il update hook. Non sono sicuro che aiuti tutti, visto che è un hook lato server. Funzionerà se si spinge la nuova filiale, ma che dire di mantenerla puramente locale?

Sto creando filiali locali che non vengono mai inserite, quindi sto utilizzando post-checkout. Dopo aver creato il tuo ramo, non lo testerai tipicamente prima di fare qualcos'altro? Quando rilevo un nuovo ramo, lo modifico e aggiungo un commit automaticamente. Dopo di ciò, sono in grado di determinare se si tratta di un nuovo ramo in un checkout in virtù del fatto che abbia una cronologia di commit.

Ecco come lo faccio (i miei ganci sono in 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) 
} 
Problemi correlati