Nozioni di base sulle filiali di fusione e cancellazione Git

Nozioni di base sulle filiali di fusione e cancellazione Git
La ramificazione può aiutarti a mantenere il tuo lavoro organizzato. Tuttavia, devi essere in grado di unire il tuo lavoro per rendere coerente il lavoro. Se non si unisce mai ed elimini i rami, la tua storia potrebbe diventare troppo caotica per capire.

Lavorare con la fusione ed eliminare la filiale

Creiamo prima una filiale principale, inseriamo alcuni commit, creiamo una nuova filiale chiamata funzionalità, aggiungi qualche commit, quindi torna a Master e commettiamo di nuovo. Ecco i comandi:

$ mkdir mygame
$ cd mygame
$ git init
$ echo "Design Decision 1: Brainstarm" >> Design.TXT
$ git aggiungi -a
$ git commit -m "c0: progetto avviato"
$ echo "Design Decision 2: Write Code" >> Design.TXT
$ git aggiungi -a
$ git commit -m "c1: codice inviato"
Caratteristiche della filiale $ git
Funzionalità di checkout $ git
$ echo "Aggiungi funzione 1" >>.TXT
$ git aggiungi -a
$ git commit -m "c2: caratteristica 1"
$ echo "Aggiungi funzione 2" >>.TXT
$ git aggiungi -a
$ git commit -m "c3: funzionalità 2"
$ git checkout master
$ echo "modificando il master" >> design.TXT
$ git aggiungi -a
$ git commit -m "c4: maestro modificato"

I comandi sopra hanno creato la seguente situazione:

Puoi controllare la storia dei due filiali per vedere quali commetti hanno:

$ git status
Su Branch Master
Niente da impegnare, la directory di lavoro pulita
$ git log --oneline
2031b83 C4: Master Modified
1C0B64C C1: codice inviato
Funzionalità di checkout $ git
Passato alle caratteristiche di ramo "
$ git log --oneline
93d220b C3: Funzione 2
AD6DDB9 C2: Funzione 1
1C0B64C C1: codice inviato
EC0FB48 C0: progetto avviato

Supponiamo ora, vuoi portare tutte le modifiche dalla filiale delle funzioni al nostro ramo principale. Dovrai iniziare il processo dalla destinazione della fusione. Perché vogliamo fonderci nel ramo principale, devi avviare il processo da lì. Quindi controlliamo il ramo principale:

$ git checkout master
Passato a Branch 'Master'
$ git status
Su Branch Master
Niente da impegnare, la directory di lavoro pulita

Ora creiamo la fusione:

$ git unisci funzionalità

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

Unisci le caratteristiche di ramo "
# Inserisci un messaggio di commit per spiegare perché questa unione è necessaria,
# Soprattutto se si fonde un upstream aggiornato in una filiale di argomenti.
#
# Le righe che iniziano con '##' verranno ignorate e un messaggio vuoto si interrompe
# il commit.

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

Unione fatta dalla strategia "ricorsiva".
caratteristica.txt | 2 ++
1 file modificato, 2 inserzioni (+)
Crea funzione Modalità 100644.TXT

Dopo l'iscrizione, hai la seguente condizione:

Se controlli i registri, troverai:

$ git status
Su Branch Master
Niente da impegnare, la directory di lavoro pulita
$ git log --oneline
46539a3 C5: unisci le caratteristiche della filiale "
2031b83 C4: Master Modified
93d220b C3: Funzione 2
AD6DDB9 C2: Funzione 1
1C0B64C C1: codice inviato
EC0FB48 C0: progetto avviato

Hai unito con successo i cambiamenti. Tuttavia, il ramo di funzionalità è ancora presente.

$ git branch -a
caratteristiche
* maestro

Puoi eliminarlo con il seguente comando:

$ git branch -d caratteristiche

Se controlli ora, dovresti vedere solo il ramo principale:

$ git branch -a
* maestro

Conclusione

Assicurati di controllare regolarmente le filiali inutilizzate ed eliminali. Vuoi mantenere pulito il tuo repository per facilitare la navigazione e la comprensione.

Ulteriori letture:

  • https: // git-scm.com/book/en/v2/git-branching-basic-ranch-and-merging