Nozioni di base sull'unione e l'eliminazione di rami di Git

Basics Git Merging



La ramificazione può aiutarti a mantenere il tuo lavoro organizzato. Tuttavia, devi essere in grado di unire il tuo lavoro per renderlo coerente. Se non unisci ed elimini mai i rami, la tua cronologia potrebbe diventare troppo caotica per essere compresa.

Lavorare con l'unione e l'eliminazione dei rami

Creiamo prima un ramo master, inseriamo alcuni commit, creiamo un nuovo ramo chiamato features, aggiungiamo alcuni commit, quindi torniamo al master e commettiamo di nuovo. Ecco i comandi:







$mkdiril mio gioco
$cdil mio gioco
$git init
$buttato fuori 'Decisione progettuale 1: Brainstarm' >>design.txt
$git add -A
$git commit -m 'C0: Progetto avviato'
$buttato fuori 'Decisione progettuale 2: scrivere codice' >>design.txt
$git add -A
$git commit -m 'C1: Codice inviato'
$git branchcaratteristiche
$git checkoutcaratteristiche
$buttato fuori 'Aggiungi funzione 1' >>feature.txt
$git add -A
$git commit -m 'C2: Caratteristica 1'
$buttato fuori 'Aggiungi funzione 2' >>feature.txt
$git add -A
$git commit -m 'C3: Caratteristica 2'
$git checkoutmaestro
$buttato fuori 'Modifica di nuovo il master' >>design.txt
$git add -A
$git commit -m 'C4: Master modificato'

I comandi precedenti hanno creato la seguente situazione:





Puoi controllare la cronologia dei due rami per vedere quali commit hanno:





$stato git
Sul maestro di filiale
niente da eseguire, pulizia della directory di lavoro
$git log --una linea
2031b83 C4: Master modificato
1c0b64c C1: codice inviato

$git checkoutcaratteristiche
Passato alla filiale'caratteristiche'

$git log --una linea
93d220b C3: Caratteristica2
ad6ddb9 C2: Funzionalità1
1c0b64c C1: codice inviato
ec0fb48 C0: Progetto avviato

Supponiamo ora di voler portare tutte le modifiche dal ramo delle funzionalità al nostro ramo principale. Dovrai avviare il processo dalla destinazione dell'unione. Poiché vogliamo unirci al ramo principale, è necessario avviare il processo da lì. Quindi diamo un'occhiata al ramo principale:

$git checkoutmaestro
Passato alla filiale'maestro'

$stato git
Sul maestro di filiale
niente da eseguire, pulizia della directory di lavoro

Ora creiamo l'unione:



$git mergecaratteristiche

Se non ci sono conflitti nell'unione, si aprirà un editor di testo con i commenti:

Unisci ramo'caratteristiche'

# Inserisci un messaggio di conferma per spiegare perché questa unione è necessaria,
# specialmente se unisce un upstream aggiornato in un ramo di argomento.
#
# Le righe che iniziano con '#' verranno ignorate e un messaggio vuoto verrà interrotto
# il commit.

Puoi modificare i commenti o accettare quelli predefiniti. L'output di unione dovrebbe mostrare risultati come questo:

Unione fatta da'ricorsivo'strategia.
feature.txt| 2++
1 filecambiato,2inserzioni(+)
modalità di creazione100644feature.txt

Dopo l'unione, hai la seguente condizione:

Se controlli i log, troverai:

$stato git
Sul maestro di filiale
niente da eseguire, pulizia della directory di lavoro

$git log --una linea
46539a3 C5: Unisci ramo'caratteristiche'
2031b83 C4: Master modificato
93d220b C3: Caratteristica2
ad6ddb9 C2: Funzionalità1
1c0b64c C1: codice inviato
ec0fb48 C0: Progetto avviato

Hai unito con successo le modifiche. Tuttavia, il ramo delle funzionalità è ancora presente.

$git branch -a
caratteristiche
*maestro

Puoi eliminarlo con il seguente comando:

$git branch -Dcaratteristiche

Se controlli ora, dovresti vedere solo il ramo principale:

$git branch -a
*maestro

Conclusione

Assicurati di controllare regolarmente i rami inutilizzati ed eliminarli. Vuoi mantenere pulito il tuo repository per facilitarne la navigazione e la comprensione.

Ulteriori letture: