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
++ $ brew 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. +
+![install git-flow](img/download.png)
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 ++
Comandi
+![git-flow commands](img/git-flow-commands.png)
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 +
★ ★ ★
+