Ho utilizzato il modello di ramificazione che hai citato per un po 'e questo è il flusso su cui mi sono stabilito:
- Crea feature branch.
- Lavori. Probabilmente diversi commit si verificano nel ramo della funzione a seconda della funzione.
- Quando il lavoro sulle feature è completo, fai rebase interattivo, schiacciando tutte le ramificazioni di feature branch in un commit.
- Unisci feature branch all'interno del ramo dev.
- Elimina il ramo della funzione.
Il passo importante qui è il numero tre. È necessario scrivere un messaggio di buon commit veramente quando si esegue il rebase. Dovrebbe avere una singola riga in alto che dia una buona panoramica del commit seguito da una linea vuota, quindi tante linee quante sono necessarie per descrivere il commit in dettaglio. Ad esempio:
Adds Feature Name (with reference to bug tracker/project management tool ticket)
This is a paragraph that describes this commit in detail. I usually use it to
describe decisions I've made, why I made them and potential limitations of the
implementation. I might follow this up with some bullet points:
- Detail 1
- Detail 2
- Detail 3
In questo modo quando si esegue git log --oneline
è chiaro dalla prima riga cosa succede in questo particolare commit. Se esegui git log
o git show {sha}
puoi visualizzare il messaggio di commit completo.
Ovviamente puoi utilizzare gitk e git log --graph per ottenere una rappresentazione grafica di tutti i tuoi commit.