Introduzione
git-flow è un set di estensioni di git che offre dei comandi di alto livello sul repository per utilizzare il modello di branching di Vincent Driessen. maggiori informazioni
★ ★ ★
Questo cheatsheet mostra l'utilizzo di base a gli effetti dei comandi offerti da git-flow
★ ★ ★
Consigli di base
- Git flow offre un eccelente guida e un ottimo output da linea di comando. Leggeteli attentamente per vedere cosa sta succedendo...
- Il Client per OSX/Windows Sourcetree è un'eccellente GUI per git e offre supporto per git-flow
- Git-flow è una soluzione basata sul merge. Non esegue il rebase su i feature branch.
★ ★ ★
Setup
- È necessario un'installazione di git funzionante come prerequisito.
- Git flow funziona su OSX, Linux e Windows
★ ★ ★
OSX
Homebrew$ brew install git-flowMacports
$ port install git-flow
Linux
$ apt-get install git-flow
Windows (Cygwin)
$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash
Sono necessari wget e util-linux per installare git-flow.
Per le istruzioni dettagliate riguardo l'installazione di git-flow visitate il wiki di git flow.
Per Iniziare
Git flow ha la necessità di essere inizializzato per personalizzare il setup del progetto.
★ ★ ★
Inizializzazione
Iniziate ad utilizzare git-flow inizializzandolo all'interno di un repository git esistente:
git flow init
Dovrete rispondere ad alcune domande riguardanti la naming conventions per i tuoi branch.
Si raccomanda l'uso dei valori di default.
Features (Funzionalità)
- Sviluppare nuove features per le releases in arrivo
- Generalmente sono presenti solo nei repository di sviluppo
★ ★ ★
Iniziare una nuova feature
Lo sviluppo di nuove feature cominica dal branch 'develop'.
Iniziate lo sviluppo di una nuova feature con
git flow feature start MYFEATURE
Questa crea un nuovo feature branch basato su 'develop' e si sposta su quello
Terminare una feature
Termina lo sviluppo di una feature. Questa azione esegue le seguenti operazioni
- Merge del branch MYFEATURE all'inteno di 'develop'
- Rimuove il feature branch
- Si sposta di nuovo sul branch 'develop'
git flow feature finish MYFEATURE
Pubblicare una feature
State sviluppando una feature in collaborazione con altri?
Pubblicate una feature sul server remoto in modo che possa essere utilizzata da altri utenti.
git flow feature publish MYFEATURE
Scaricare una feature pubblicata
Scaricare una feature pubblicata da un altro utente.
git flow feature pull origin MYFEATURE
Potete tracciare una feature sul repository origin usando git flow feature track MYFEATURE
Creare una release
- Supporto alla preparazione di una nuova release di produzione
- Consente di eseguire bug fixes minori e preparare i meta-dati per la release
★ ★ ★
Iniziare una release
Per iniziare una release usate il comando release di git flow. Crea un release branch a partire dal branch 'develop'.
git flow release start RELEASE [BASE]
Potere facoltativmente fornire come parametro [BASE]
lo sha-1 hash del commit dal quale far partire la release. Il commit deve essere sul branch 'develop'.
★ ★ ★
È una buona idea pubblicare il release branch dopo averlo creato in modo da consentire l'invio di release commit anche da parte di altri sviluppatori. Potete farlo, usando un comando analogo a quello per pubblicare le features, con il comando:
git flow release publish RELEASE
(Potete tracciare la release remota con il comando git flow release track RELEASE
)
Terminare una release
Terminare una release è uno dei passi più grandi nella gestione dei branch di git. Vengono eseguite svariate operazioni:
- Merge del release branch su branch 'master'
- Tag della relase con il suo nome
- Merge all'indietro della relase sul branch 'develop'
- Rimozione del release branch
git flow release finish RELEASE
Non dimenticate di fare il push dei tag creati con git push --tags
Hotfixes
- Gli Hotfixes nascono dalla necessità di agire immediatamente di fronte ad uno stato indesiderato della versione live di produzione.
- Possono essere fatti partire dal tag corrispondente sul branch master che contrassegna la versione di produzione.
★ ★ ★
git flow hotfix start
Come gli altri comandi di git flow, un hotfix comincia con
git flow hotfix start VERSION [BASENAME]
La versione passata come argomento definisce il nuovo nome dell'hotfix release. Facoltativamente potete specificare un basename da cui partire.
Terminare un hotfix
Terminando un hotfix, esso viene integrato (merge) all'indietro all'interno di 'develop' e di 'master'. In aggiunta il master viene taggato con la versone dell'hotfix.
git flow hotfix finish VERSION
Backlog
★ ★ ★
- Non tutti i comandi disponibili sono riportati qui, solo i più importanti
- Potete comunque usare git e tutti i suoi comandi normalmente come li conoscete, git flow è solo una collezione di strumenti aggiuntivi.
- La funzionalità 'support' è ancora in beta, 'utilizzo non è consigliato
- Se volete fornire una traduzione sarò felice di integrarla
★ ★ ★