Riutilizzare un ramo unito, buona pratica?


36

Attualmente, creavo un nuovo ramo ogni volta che dovevo aggiungere una nuova funzionalità alla mia applicazione.

Quando la mia funzione è terminata e funzionale, la fondo con il ramo principale.

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

Ad esempio, ho un ramo chiamato modellista-membro in un'applicazione Ruby on Rails. Successivamente, devo 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 uniscilo nuovamente o semplicemente crea un nuovo ramo?


1
Se il tuo progetto diventa molto grande, riutilizzare i vecchi rami richiederà molto tempo per cambiare e / o aggiornare git. Rispetto ai pochi secondi necessari per creare un nuovo ramo.
Reactgular,

Risposte:


34

Crea un nuovo ramo, perché:

  • Una filiale nuova ha meno probabilità di avere conflitti di fusione quando hai finito e vuoi unirla in master. Poche cose sono più soggette ad errori rispetto alla risoluzione dei conflitti di unione.

  • 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 delle funzionalità ... e a quel punto stai solo ramificando il master in un modo inutilmente complicato.

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


7

Usa un nuovo ramo.

Per la denominazione, potresti considerare di utilizzare un formato interno che this_work è un'estensione o passa a that_work

Ad esempio potresti nominare il secondo ramo

modeling-member--attributes

con la - segnalazione che il nome del nome a sinistra è il ramo originale

Affrontiamo un problema un po 'simile quando usiamo i numeri dei biglietti Jira per i nomi delle filiali. A volte c'è un po 'di lavoro in più per lo stesso biglietto. A volte non è possibile eseguire il rollback di una modifica del database. In questi casi utilizziamo, ad esempio, il ramo originale SEND-123 e il secondo ramo come SEND-123a


0

Se si desidera salvare solo commit da un'unione sul master e si sta utilizzando github, è possibile utilizzare "Fork" per ogni nuova funzione ed eseguire una richiesta pull e accettare la richiesta pull dopo aver completato tutte le nuove funzionalità.

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


4
"u" non è una parola inglese. Tale sintesi vocale dovrebbe essere riservata a testi e twitter.
Gort il robot

@Steven Ora, anche lì, quando per (la maggior parte delle persone) ogni lettera non richiede più tre o quattro pressioni di tasti, dovrebbe essere evitata. :)
TZHX,
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.