Ecco, grosso modo, la nostra struttura di lavoro che usa git, per lo sviluppo web. Abbiamo un master branch e singoli o gruppi di lavoro sono fatti separatamente nelle filiali, quindi uniti in.
- Arriva un ticket (o più)
- Creiamo un ramo sul nostro repository di sviluppo locale e lo spingiamo all'origine.
- Fissiamo i ticket nel codice, eseguiamo il commit del lavoro e spingiamo all'origine.
- Una volta che siamo soddisfatti del nostro lavoro, trasciniamo il ramo in un repository sul nostro server UAT / Staging e lo controlliamo affinché il cliente possa esaminarlo.
- Il client approva il lavoro.
- Torniamo al nostro repository di sviluppo locale, controlliamo il master, uniamo il ramo e spingiamo all'origine.
- Creiamo un tag dal master in seguito.
- Quindi andiamo sul server live, tiriamo il master e spostiamo / aggiorniamo il tag su quello nuovo.
Siamo in 7, lavorando a circa 15 progetti circa nel corso dell'anno. In generale, una persona è sufficiente per lavorare su un progetto in qualsiasi momento, ma a volte due persone potrebbero lavorare in rami separati con l'obiettivo di unirsi al ramo principale più o meno nello stesso momento.
In generale, riteniamo che la fusione sia la migliore perché, come comprendo, conserva una cronologia dello sviluppo in relazione a ciò che è stato unito e quando. Considerando che rebase sembra distruggere completamente questo e linearizzare il registro principale.
Perché, se questa ipotesi è corretta, qualcuno vuole usare rebase? È solo per i progetti estremamente occupati che vengono costantemente ramificati e uniti e c'è bisogno di garantire che le unioni siano riuscite - così gli sviluppatori possono testare l'aggiunta di master al loro lavoro e risolvere i conflitti prima di unirli nuovamente?