Come devo incorporare un aggiornamento rapido in un ramo di funzionalità usando gitflow?


10

Ho iniziato a utilizzare gitflow per un progetto e ho un ramo di funzionalità eccezionale e un aggiornamento rapido appena creato. Per il flusso di lavoro di gitflow, l'aggiornamento rapido viene applicato sia al master che ai rami di sviluppo , ma nulla viene detto o fatto sui rami di funzionalità esistenti.

Tuttavia, vorrei incorporare le modifiche di aggiornamento rapido nel mio ramo di funzionalità, che per quanto posso dire lascia tre opzioni:

  1. Non incorporare le modifiche. Se le modifiche fossero necessarie per il ramo funzionalità, avrebbe dovuto far parte del ramo funzionalità.
  2. Unisci lo sviluppo nel ramo delle caratteristiche. Questo sembra seguire al meglio il flusso di lavoro di gitflow, ma causerebbe commit fuori servizio.
  3. Rebase il ramo della funzione su sviluppo . Ciò preserverebbe l'ordine di commit ma il rebasing sembra essere completamente assente dal flusso di lavoro generale di gitflow.

Qual è la migliore pratica qui?

git  gitflow 

I rami delle caratteristiche dovrebbero generalmente essere di breve durata, è una specie di odore di SCM che sta fondendo i cambiamenti in essi; è impossibile semplicemente terminare (o stabilizzare) il ramo della funzione e fonderlo nuovamente?
Aaronaught il

2
@Aaronaught bene che la funzione non è terminata / potrebbe non andare da nessuna parte. La situazione di base è che una funzionalità che impiega un paio di giorni per svilupparsi ha scoperto un bug che potrebbe potenzialmente influenzare i dati di produzione. I test sono stati scritti, l'hotfix è stato applicato al master / produzione, ma la funzionalità incompiuta è ancora interrotta dal bug. Stai suggerendo di fondere una funzionalità parzialmente completata nella linea di sviluppo principale? Cosa succede se la funzione non viene eseguita correttamente?

Risposte:


11

Non vedo nulla di male nel rielaborare il ramo delle funzionalità in sviluppo per raccogliere le ultime hotfix. In realtà, riordinare frequentemente il ramo delle funzionalità con lo sviluppo può essere utile, poiché consente di mantenere il ramo "aggiornato", il che rende la fusione molto più semplice quando si arriva a quel livello.


Sì: guardandoci attorno, alcune prove circostanziali - incluso l' annuncio di gitflow 0.2 che ha aggiunto il rebasing delle funzionalità - indicano che il normale flusso di lavoro git rebase è anche il flusso di lavoro gitflow.

2
Interessante. Non posso dire di essere un esperto di Gitflow, ma la mia comprensione era che gli hotfix erano impegni singolari contro il maestro, non i rami, e semplicemente ho scelto Cherry per svilupparli. Leggendo ho pensato che mi sbagliavo totalmente.
jb510,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.