Recentemente ho avuto una discussione con persone assolutamente contrarie a una strategia di rebase di feature branch su GIT. Sembra essere uno schema accettato per usare rebase solo per rami locali, privati ma non usarlo mai quando ci sono diverse persone che lavorano su una stessa funzione e amp; ramo, come da questa cosiddetta "Regola d'oro di rifondazione" (come spiegato qui: link )
Sono sorpreso che ci sia un consenso su questo. Ho lavorato per 3 anni con una strategia di rebasing completa, con circa 20 sviluppatori che lavoravano insieme e indovina, ha funzionato.
Il processo è fondamentalmente:
- Crei il tuo branch di funzionalità, chiamiamolo "myfeature" e spingilo all'origine / alla mia caratteristica
- Altre persone potrebbero controllarlo e lavorarci
- A volte potresti rebase dal master: da "miafeature", git rebase origin / master ; e poi, sì, devi forzarlo a forza.
- Cosa succede quando altre persone vogliono spingere i propri commit? Lo rebase solo: origine / nuova caratteristica re gase . Quindi ora sono in avanzamento rapido e possono spingerlo senza forzare.
L'unico principio da rispettare è che il ramo della funzione è di proprietà di qualcuno . Il proprietario è l'unico in grado di forzare la forza.
Quindi, lo ammetto: non appena c'è una forza di spinta, c'è il rischio di commettere errori. È vero. Ma ci sono anche molti modi per recuperare dagli errori e, in 3 anni di sviluppo, non ho visto molti errori che spingono la forza e, quando è successo, abbiamo sempre trovato un modo per recuperare correttamente.
Quindi, perché questa "Regola d'Oro di Rebase" è così ampiamente accettata? C'è qualcos'altro che mi è mancato? Capisco che richiede un minimo di organizzazione (ogni strategia richiede un'organizzazione), ma funziona.