Risoluzione Dei Conflitti Di Merge
Risoluzione dei conflitti
Nel capitolo precedente, abbiamo incontrato un conflitto di merge, quindi ora è il momento di risolverlo. Aprire il file branch_learning.txt
con l'editor Vim utilizzando il seguente comando:
Se Vim non è installato, è possibile utilizzare altri editor di testo, come nano o atom (sostituire vim
con il nome dell'editor di testo nel comando sopra). Tuttavia, si consiglia vivamente di utilizzare Vim poiché sarà molto più semplice seguire la lezione.
Ecco il nostro file aperto nell'editor Vim:
Ora è possibile vedere i marcatori che indicano le sezioni in conflitto. Questi marcatori sono rappresentati da frecce e simboli speciali per evidenziare le modifiche in conflitto provenienti da diversi rami. I marcatori di conflitto sono i seguenti:
<<<<<<< HEAD
: Indica l'inizio delle modifiche dal ramo corrente (master
nel nostro caso);=======
: Separa le modifiche del ramo corrente (HEAD) da quelle del ramo che si sta unendo;>>>>>>> feature/new-feature
: Segna la fine delle modifiche provenienti dal ramo che si sta unendo.
Per risolvere i conflitti, è possibile selezionare la modifica dal ramo corrente (master
), selezionare la modifica dal ramo che si sta unendo (feature/new-feature
) oppure modificare manualmente le modifiche.
Modificare manualmente le modifiche combinando le modifiche di entrambi i rami seguendo questi passaggi:
1. Accedere alla modalità di modifica
Per prima cosa, è necessario accedere alla modalità insert (modifica) in Vim premendo i
. Questo consente di modificare il testo.
2. Modificare la sezione in conflitto
Successivamente, occorre combinare le righe di entrambi i rami una dopo l'altra, in modo che il contenuto risultante del file sia il seguente:
3. Uscire dalla modalità di modifica, salvare ed uscire:
Per uscire dalla modalità insert, premere il tasto Escape. Successivamente, per salvare le modifiche ed uscire, digitare :wq
e premere il tasto Enter:
Commit del file
Poiché abbiamo risolto i conflitti, aggiungiamo ora branch_learning.txt
all'area di staging e verifichiamo lo stato:
Il file è stato modificato ed effettivamente aggiunto all'area di staging. Ora è possibile procedere 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 merge:
Accedere alla modalità inserimento in Vim premendo i
e modificare questo messaggio aggiungendo la seguente riga: Kept lines from both branches
per specificare il modo in cui sono stati risolti i conflitti. Ecco il messaggio di commit completo:
Per uscire dalla modalità inserimento, salvare le modifiche e uscire da Vim, premere il tasto Escape, poi digitare :wq
e premere il tasto Enter.
Il commit è stato eseguito con successo e il conflitto di merge è ora risolto.
Esaminiamo ora la nostra cronologia dei commit come un grafico (opzione --graph
) con una riga per ogni commit (opzione --oneline
):
Qui possiamo vedere il nostro ultimo commit di merge e la forma 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
Awesome!
Completion rate improved to 3.57
Risoluzione Dei Conflitti Di Merge
Scorri per mostrare il menu
Risoluzione dei conflitti
Nel capitolo precedente, abbiamo incontrato un conflitto di merge, quindi ora è il momento di risolverlo. Aprire il file branch_learning.txt
con l'editor Vim utilizzando il seguente comando:
Se Vim non è installato, è possibile utilizzare altri editor di testo, come nano o atom (sostituire vim
con il nome dell'editor di testo nel comando sopra). Tuttavia, si consiglia vivamente di utilizzare Vim poiché sarà molto più semplice seguire la lezione.
Ecco il nostro file aperto nell'editor Vim:
Ora è possibile vedere i marcatori che indicano le sezioni in conflitto. Questi marcatori sono rappresentati da frecce e simboli speciali per evidenziare le modifiche in conflitto provenienti da diversi rami. I marcatori di conflitto sono i seguenti:
<<<<<<< HEAD
: Indica l'inizio delle modifiche dal ramo corrente (master
nel nostro caso);=======
: Separa le modifiche del ramo corrente (HEAD) da quelle del ramo che si sta unendo;>>>>>>> feature/new-feature
: Segna la fine delle modifiche provenienti dal ramo che si sta unendo.
Per risolvere i conflitti, è possibile selezionare la modifica dal ramo corrente (master
), selezionare la modifica dal ramo che si sta unendo (feature/new-feature
) oppure modificare manualmente le modifiche.
Modificare manualmente le modifiche combinando le modifiche di entrambi i rami seguendo questi passaggi:
1. Accedere alla modalità di modifica
Per prima cosa, è necessario accedere alla modalità insert (modifica) in Vim premendo i
. Questo consente di modificare il testo.
2. Modificare la sezione in conflitto
Successivamente, occorre combinare le righe di entrambi i rami una dopo l'altra, in modo che il contenuto risultante del file sia il seguente:
3. Uscire dalla modalità di modifica, salvare ed uscire:
Per uscire dalla modalità insert, premere il tasto Escape. Successivamente, per salvare le modifiche ed uscire, digitare :wq
e premere il tasto Enter:
Commit del file
Poiché abbiamo risolto i conflitti, aggiungiamo ora branch_learning.txt
all'area di staging e verifichiamo lo stato:
Il file è stato modificato ed effettivamente aggiunto all'area di staging. Ora è possibile procedere 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 merge:
Accedere alla modalità inserimento in Vim premendo i
e modificare questo messaggio aggiungendo la seguente riga: Kept lines from both branches
per specificare il modo in cui sono stati risolti i conflitti. Ecco il messaggio di commit completo:
Per uscire dalla modalità inserimento, salvare le modifiche e uscire da Vim, premere il tasto Escape, poi digitare :wq
e premere il tasto Enter.
Il commit è stato eseguito con successo e il conflitto di merge è ora risolto.
Esaminiamo ora la nostra cronologia dei commit come un grafico (opzione --graph
) con una riga per ogni commit (opzione --oneline
):
Qui possiamo vedere il nostro ultimo commit di merge e la forma caratteristica di un three-way merge.
Grazie per i tuoi commenti!