Risoluzione dei Conflitti di Merge
Scorri per mostrare il menu
Risoluzione dei conflitti
Nel capitolo precedente si è verificato un conflitto di merge, quindi ora è il momento di risolverlo.
Per prima cosa, aprire il file branch_learning.txt nell'editor Vim utilizzando il seguente comando:
vim branch_learning.txt
Se Vim non è installato, è possibile utilizzare un altro editor di testo come nano o atom sostituendo vim con il nome del proprio editor nel comando sopra indicato.
Tuttavia, si consiglia di utilizzare Vim per una migliore corrispondenza con i passaggi illustrati qui.
Ecco il file aperto nell'editor Vim:
Ora è possibile vedere i marcatori di conflitto che indicano le sezioni in conflitto.
Questi marcatori utilizzano frecce e simboli speciali per evidenziare le differenze tra i rami:
<<<<<<< HEAD: indica l'inizio delle modifiche dal ramo corrente (master);=======: separa le modifiche del ramo corrente (HEAD) da quelle del ramo che si sta unendo;>>>>>>> feature/new-feature: indica la fine delle modifiche dal ramo che si sta unendo.
Per risolvere il conflitto, scegliere una delle seguenti opzioni:
- Mantenere le modifiche del ramo corrente (
master); - Mantenere le modifiche del ramo unito (
feature/new-feature); - Modificare manualmente il contenuto.
Modificare manualmente il file combinando le modifiche di entrambi i rami seguendo questi passaggi:
1. Entrare in modalità di modifica
Per prima cosa, entrare in modalità inserimento in Vim premendo i.
Questo consente di modificare il testo.
2. Modifica la sezione in conflitto
Successivamente, combina le righe di entrambi i rami in sequenza. Il contenuto risultante del file dovrebbe essere il seguente:
New branch
New line from the master branch
New line from the feature branch
3. Esci dalla modalità di modifica, salva ed esci
Premere il tasto Escape per uscire dalla modalità di inserimento.
Quindi digitare :wq e premere Invio per salvare le modifiche e uscire da Vim:
Commit del file
Poiché i conflitti sono stati risolti, aggiungere il file branch_learning.txt all'area di staging e verificare lo stato:
git add branch_learning.txt
git status
Il file è stato modificato e aggiunto con successo all'area di staging. Ora procedere con il commit:
git commit
Ancora una volta, si apre l'editor di testo predefinito (Vim nel mio caso) con il messaggio di commit predefinito relativo al merge:
Entra in modalità inserimento in Vim premendo i, quindi modifica il messaggio aggiungendo la riga
Kept lines from both branches
per descrivere come sono stati risolti i conflitti.
Ecco il messaggio di commit completo:
Merge branch 'feature/new-feature'
Kept lines from both branches
Per uscire dalla modalità inserimento, salvare le modifiche e chiudere Vim, premere il tasto Escape, quindi digitare :wq e premere Invio.
Il commit è stato eseguito con successo e il conflitto di merge è ora risolto.
Esaminiamo ora la nostra cronologia dei commit come un grafo (opzione --graph) con una riga per ogni commit (opzione --oneline):
git log --graph --oneline
Qui puoi vedere l'ultimo commit di merge insieme alla struttura caratteristica di un three-way merge.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione