2013-01-23 18 views
5

Proveremo un flusso di lavoro in github in cui ogni ticket è un ramo fuori dal master.
Dopo aver completato il ticket, il lavoro viene unito a staging in cui vengono eseguiti i test di regressione e integrazione prima di essere uniti in master.Elimina automaticamente il ramo git dopo l'unione nel master

Un responsabile della squadra ha sollevato il problema delle vecchie filiali di biglietti dopo che un'unione si sarebbe accumulata.

Ho trovato lo script this e voglio sapere se questo funzionerebbe nel nostro ambiente. Desideriamo solo eliminare rami che sono stati uniti in master.

+0

GitHub ha un [pulsante per l'eliminazione di rami] (https://github.com/blog/1335-tidying-up-after-pull-requests) che sono stati uniti nel ramo a cui sono stati inviati, ma suppongo che non ti aiuta molto –

+0

Sì, vogliamo automatizzare questo processo. Il link mostra come farlo con shell, ma non abbiamo accesso alla shell di github, quindi non c'è modo di cronometrarlo, afaik –

+0

Quindi in realtà stai cercando [git hooks] (http://git-scm.com/book/it/Personalizzazione-Git-Git-Hooks), più specificamente per l'hook 'post-merge'. Se è così, non ha intenzione di lavorare, ho paura. –

risposta

4

Non esiste uno script pronto per l'uso per quanto ne so. Dovrai creare i tuoi strumenti per quello.

C'è uno strumento chiamato git-flow di Vincent Driessen che è stato creato per aiutare gli sviluppatori a seguire il suo flusso di lavoro git descritto in "A successful Git branching model".

Non è semplice come eliminare il ramo dopo l'unione perché non si sa mai se si verificherà un conflitto di unione o meno.

+0

Il collegamento che ho aggiunto è uno script pronto per l'uso, ma non credo di poterlo usare con github. –

+0

GitHub non ha niente a che fare con questo. È solo un servizio che ospita i repository (e un po 'di più). Il flusso hub –

+1

(http://datasift.github.com/gitflow/) è adattato da gitflow e funziona perfettamente. –

2

Aggiungere uno dei seguenti al file .gitconfig per un alias facile da unire ed eliminare un ramo con 1 comando.

Alias ​​in funzione:

[alias] 
    ff = "!f() { git merge $1; git branch -d $1; }; f" 

Alias ​​come un nuovo comando di shell:

[alias] 
    ff = !sh -c 'git merge $1 && git branch -d $1' -- 

Entrambi fanno la stessa cosa esatta, a soli 2 diversi metodi di farlo.

Problemi correlati