Risoluzione dei Conflitti di Merge
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:
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.
Tuttavia, si consiglia di utilizzare Vim per una migliore corrispondenza con i passaggi mostrati qui.
Ecco il file aperto nell'editor Vim:
Ora sono visibili 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 unito.
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.
Questa operazione consente di modificare il testo.
2. Modifica la sezione in conflitto
Successivamente, unire le righe di entrambi i rami in sequenza. Il contenuto risultante del file dovrebbe essere il seguente:
3. Uscire dalla modalità di modifica, salvare ed uscire
Premere il tasto Escape per uscire dalla modalità di inserimento.
Quindi digitare :wq e premere Invio per salvare le modifiche ed uscire da Vim:
Committing del file
Poiché i conflitti sono stati risolti, aggiungere il file branch_learning.txt all'area di staging e verificare lo stato:
Il file è stato modificato e aggiunto con successo all'area di staging. Procedere ora con il commit:
Ancora una volta, si apre l'editor di testo predefinito (Vim in questo caso) con il messaggio di commit predefinito relativo alla fusione:
Accedere alla modalità inserimento in Vim premendo i, quindi modificare il messaggio aggiungendo la riga
Kept lines from both branches
per descrivere come sono stati risolti i conflitti.
Ecco il messaggio di commit completo:
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 (flag --graph) con una riga per ogni commit (flag --oneline):
Qui è possibile visualizzare 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
Can you explain what a three-way merge is?
How do I interpret the output of `git log --graph --oneline`?
What should I do if I see unexpected results in the commit graph?
Awesome!
Completion rate improved to 3.57
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:
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.
Tuttavia, si consiglia di utilizzare Vim per una migliore corrispondenza con i passaggi mostrati qui.
Ecco il file aperto nell'editor Vim:
Ora sono visibili 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 unito.
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.
Questa operazione consente di modificare il testo.
2. Modifica la sezione in conflitto
Successivamente, unire le righe di entrambi i rami in sequenza. Il contenuto risultante del file dovrebbe essere il seguente:
3. Uscire dalla modalità di modifica, salvare ed uscire
Premere il tasto Escape per uscire dalla modalità di inserimento.
Quindi digitare :wq e premere Invio per salvare le modifiche ed uscire da Vim:
Committing del file
Poiché i conflitti sono stati risolti, aggiungere il file branch_learning.txt all'area di staging e verificare lo stato:
Il file è stato modificato e aggiunto con successo all'area di staging. Procedere ora con il commit:
Ancora una volta, si apre l'editor di testo predefinito (Vim in questo caso) con il messaggio di commit predefinito relativo alla fusione:
Accedere alla modalità inserimento in Vim premendo i, quindi modificare il messaggio aggiungendo la riga
Kept lines from both branches
per descrivere come sono stati risolti i conflitti.
Ecco il messaggio di commit completo:
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 (flag --graph) con una riga per ogni commit (flag --oneline):
Qui è possibile visualizzare l'ultimo commit di merge insieme alla struttura caratteristica di un three-way merge.
Grazie per i tuoi commenti!