È buona prassi tornare a un vecchio ramo per sviluppare una nuova funzione o creare un nuovo ramo?

2

Ho un vecchio ramo ( old-branch ) che ho usato per l'ultima volta circa quattro mesi fa con lo sviluppo di una funzionalità per un progetto specifico. Non è mai stato fuso in master perché la funzione non è mai stata riprodotta in base al piano ed è stata abbandonata.

Da allora, il progetto ha fatto molta strada e il codebase ora sembra molto diverso.

Nota: ho usato solo il controllo git / versione per alcuni mesi, quindi sto ancora imparando a riguardo. Inoltre, sono l'unica persona che utilizza questo repository e nessun altro lo userà mai, quindi tutte le modifiche sono - e continueranno a esserlo - le mie.

Ora ho bisogno di sviluppare una funzionalità per questo progetto, e ho controllato old-branch , ma il problema era che (naturalmente) ripristinato la base di codici originale (con nuove funzionalità) su come erano tutti quei mesi fa.

Inoltre, quando sono tornato a master , ho notato centinaia di file non tracciati (dal vecchio ramo).

La mia domanda è questa: dovrei creare un nuovo ramo ( development / feature ) o usare old-branch ? Se dovrei usare old-branch , come dovrei gestire le vaste differenze nel codebase e nei successivi file non tracciati quando torno a master ?

È buona pratica creare e utilizzare nuovi rami specifici per le funzionalità come e quando ne ho bisogno?

Penserei che con l'evolversi di un progetto e con l'emergere di nuove funzionalità, sarebbe più logico escludere il progetto (per creare una copia di lavoro di master così com'è in quel momento) quindi che è possibile apportare le modifiche e quindi unire new-branch di nuovo in master una volta completata la modifica. Tuttavia, essendo relativamente nuovo al controllo git / versione, forse questo non è il modo corretto di fare le cose. Non lo so.

Avevo l'impressione che dovresti avere un ramo development /% co_de dedicato che usi per sviluppare ulteriormente nuove funzionalità, e poi che ti unisci nuovamente a features una volta completate, ma forse sono io sbagliata.

    
posta MusTheDataGuy 24.10.2018 - 13:23
fonte

2 risposte

5

Se old-feature non ha nulla a che fare con new-feature , quindi crea un nuovo ramo.

Anche se la nuova funzione ha bisogno di un codice dalla vecchia funzione, creerei comunque un nuovo ramo fuori dal codice corrente, e selezionerei selettivamente i file da old-branch nel nuovo ramo:

$ git checkout -b new-feature master
$ git checkout old-feature -- path/to/file/you/want

Git, dalla riga di comando o utilizzando una GUI, ti consente di annullare le modifiche apportate a singole righe di un file, in modo da ottenere risultati estremamente dettagliati in ciò che porti al nuovo ramo.

    
risposta data 24.10.2018 - 13:32
fonte
2

Un ramo di quattro mesi sarà un incubo da unire. Se la funzione viene abbandonata, elimina il ramo (a meno che il tuo capo non sia un accaparratore e desideri mantenerlo). Non toccare quel vecchio ramo.

Crea un nuovo ramo, fai il tuo lavoro, uniscilo o non unirlo, quindi elimina il ramo.

    
risposta data 24.10.2018 - 18:15
fonte

Leggi altre domande sui tag