Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Risoluzione Dei Conflitti Di Merge | Lavorare con i Branch in Git
Nozioni Fondamentali di Git

bookRisoluzione 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.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 3.57

bookRisoluzione 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.

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 6
some-alt