Riusare un ramo unito, buone pratiche?

29

Attualmente, ho creato un nuovo ramo ogni volta che devo aggiungere una nuova funzionalità alla mia applicazione.

Quando la mia funzione è completa e funzionale, la unisco al ramo principale.

Ma più tardi, quando ho bisogno di aggiornare questa funzione (come un miglioramento) è meglio creare un nuovo ramo o devo rebase il precedente con il master, fare l'aggiornamento quindi unire di nuovo?

Ad esempio, ho un ramo chiamato membro di modellazione in un'applicazione Ruby on Rails. Successivamente, ho bisogno di aggiungere alcuni attributi al modello membro (che è stato creato in questo ramo). Cosa dovrei fare? Rebase questo ramo con il master, aggiorna il modello e lo unisci di nuovo o semplicemente crea un nuovo ramo?

    
posta gaetanm 25.05.2015 - 14:48
fonte

3 risposte

29

Crea un nuovo ramo, perché:

  • Un nuovo ramo ha meno probabilità di avere conflitti di unione quando hai finito e vuoi unirlo in master. Poche cose sono più soggette a errori che a risolvere conflitti di fusione.

  • La funzionalità potrebbe aver subito diverse modifiche e aggiornamenti dalla sua implementazione originale, rendendo il ramo originale completamente obsoleto. L'unico modo per aggiornarlo è unire il master nel ramo della funzione ... ea quel punto ti stai solo distruggendo il master in un modo inutilmente complicato.

  • Se solo per semplicità, di solito è una buona idea avere lo stesso flusso di lavoro per aggiornamenti, correzioni di bug e nuove funzionalità. Questo vale per ramificazioni, revisioni di codice, utilizzo di bug tracker e praticamente tutto il resto. La differenza tra l'aggiornamento di una funzione esistente, l'aggiunta di una nuova funzionalità e la correzione di un bug è spesso soggettiva.

risposta data 25.05.2015 - 15:02
fonte
7

Utilizza un nuovo ramo.

Per i nomi, puoi prendere in considerazione l'utilizzo di un formato interno che questo_work è un'estensione o cambia in that_work

Ad esempio potresti nominare il secondo ramo

modeling-member--attributes

con il - segnalando che il nome sul lato sinistro è il ramo originale

Affrontiamo un problema simile quando usiamo i numeri dei biglietti Jira per i nomi dei rami. A volte c'è un ulteriore lavoro per lo stesso biglietto. A volte una modifica del database non può essere ripristinata. In questi casi utilizziamo, ad esempio, il ramo originale SEND-123 e il secondo ramo da inviare a SEND-123a

    
risposta data 26.05.2015 - 01:38
fonte
0

Se vuoi salvare solo commit da un'unione sul master e stai usando github, puoi usare "Fork" per ogni nuova funzione ed effettuare una richiesta pull e accettare la richiesta pull dopo aver ottenuto ogni nuova funzionalità.

Non consiglio di lavorare su vecchi rami, dal momento che puoi ottenere conflitti quando li unisci al capo del master e ovviamente non è necessario farlo ...

    
risposta data 25.05.2015 - 22:24
fonte

Leggi altre domande sui tag