ho la git
flusso di lavoro seguente:Lo schiacciamento si impegna in una pratica ottimale (per questo particolare flusso di lavoro)?
- Crea nuovo ramo di caratteristica
- lavoro sul ramo di caratteristica
- Commit spesso
- Una volta funzione è completa, si fondono in
master
ramo - sciacquare e ripetere
Tuttavia, a volte, ho bisogno per ripristinare un'intera funzione dal master. Ciò potrebbe coinvolgere un sacco di revert
ing. (Il motivo per cui ho bisogno di annullare una funzionalità è che ho un sito Web che funziona da un repository.In questo punto, utilizziamo uno script che distribuisce il sito sul nostro sito di produzione o sul sito di Staging. Non chiedere, è proprio quello che mi è stato dato per lavorare. A volte, sto lavorando a qualcosa che ho messo in scena, ma poi è necessario apportare un cambiamento immediato, quindi avevo bisogno di un modo per tirare le mie modifiche in ordine per pulire il repository)
Sto pensando che il modo più semplice per farlo è se ogni ramo di funzionalità ha un solo commit. Quindi potrei revert
che commette. Quindi, naturalmente, sto pensando di schiacciare tutti i commit di un ramo di funzionalità in uno, prima di unirlo a master
.
Così ora il mio flusso di lavoro sarà simile:
- Crea nuovo ramo di caratteristica
- lavoro sul ramo di caratteristica
- Commit spesso
- Una volta caratteristica è completa git rebase -i HEAD ~ number_of_commits (o se la filiale remota è disponibile, origine/funzione_branco)
C'è qualche problema con questa logica? Va contro le migliori pratiche? Ho fatto alcuni test e l'intero flusso di lavoro sembra funzionare senza intoppi e risolve il mio problema, ma volevo gestire l'idea con altri (più intelligenti) Git-ers per vedere se c'è qualcosa di sbagliato in questo.
Grazie!
Hai esaminato 'git merge --squash'? Qualche ragione particolare per cui hai scelto 'rebase' invece di usare' squash merge'? Non avresti una cronologia lineare quando esegui un 'unione', ma i commit nel ramo della funzione avranno comunque una cronologia lineare e avresti solo una fusione. – Tuxdude
Ho appena esaminato quello per il mio scenario. Molto bella. Non so quale userei di più (forse 'rebase' dato che butto via questi rami un po 'spesso), ma avere la storia sul mio ramo delle funzionalità è una cosa carina da avere. Grazie per l'aiuto! –
@Tuxdude: prendi in considerazione una risposta. Probabilmente * è * la risposta. – sleske