0Pricing
DevOps Bootcamp · Lezione

Risoluzione manuale dei conflitti di merge

Impari a identificare e risolvere manualmente i conflitti di merge che si verificano integrando branch divergenti.

Risoluzione manuale dei conflitti di merge è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Comprendere i conflitti di merge

Benvenuto nel mondo dei conflitti di merge! Non si preoccupi: sono una parte normale della collaborazione con Git. Un conflitto di merge si verifica quando Git non riesce a determinare automaticamente come combinare le modifiche provenienti da due branch diversi.

Di solito accade quando due branch modificano in modi diversi le stesse righe dello stesso file, oppure quando un branch elimina un file modificato da un altro branch.

Perché si verificano i conflitti

Git è estremamente efficace nell'unire automaticamente la maggior parte delle modifiche. Tuttavia, di fronte all'ambiguità ha bisogno dell'intervento umano. Ecco alcuni scenari comuni:

  • Stessa riga, modifiche diverse: due persone modificano in modo diverso esattamente la stessa riga di codice.
  • Uno elimina, l'altro modifica: un branch elimina un file mentre un altro branch lo modifica.
  • Rinomina e modifica: un file viene rinominato in un branch e modificato in un altro.

Rilevare i conflitti con Git

Quando si verifica un conflitto di merge, Git non completa automaticamente l'operazione. Invece, mette in pausa il processo e indica quali file contengono conflitti. Verrà visualizzato un messaggio simile a questo:

Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

Usare `git status` per i conflitti

Dopo il fallimento di un merge automatico, il repository si troverà nello stato "merging". Può usare git status per vedere quali file sono in conflitto. Questi file verranno elencati come "unmerged paths".

git status

Interpretare i marcatori di conflitto

Git inserisce marcatori speciali direttamente nei file in conflitto per mostrare dove si trova il problema. Questi marcatori aiutano a identificare le diverse versioni del codice:

  • <<<<<<< HEAD: indica l'inizio delle modifiche del branch corrente.
  • =======: separa le modifiche dei due branch.
  • >>>>>>> branch-name: indica la fine delle modifiche del branch in arrivo.

All'interno di un file in conflitto

Vediamo un esempio. Immagini di avere un file hello.txt. Il branch main lo ha modificato in "Hello from main", mentre un branch feature ha modificato la stessa riga in "Greetings from feature". Quando si integra feature in main, il file apparirà così:

<<<<<<< HEAD
Hello from main
=======
Greetings from feature
>>>>>>> feature

Risolvere manualmente il conflitto

Il suo compito è aprire il file in conflitto, ad esempio hello.txt, nell'editor di testo. Deve quindi modificare manualmente il file per rimuovere i marcatori di conflitto e scegliere il contenuto desiderato. Può combinare parti diverse, scegliere una delle versioni oppure scrivere qualcosa di completamente nuovo.

Nel nostro esempio con hello.txt, se volessimo mantenere entrambi i messaggi, potremmo modificarlo così:

Hello from main and Greetings from feature!

Preparare le modifiche risolte

Dopo aver modificato manualmente il file e rimosso tutti i marcatori di conflitto, deve comunicare a Git che il conflitto è stato risolto. Per farlo, prepari il file con git add.

Ripeta questa operazione per ogni file elencato come "unmerged paths" da git status.

git add hello.txt

Completare il commit di merge

Dopo aver preparato tutti i file in conflitto, il merge è pronto per essere sottoposto a commit. In genere Git propone un messaggio predefinito per il commit di merge, che può accettare o modificare. Questo commit finale completa il processo di merge.

git commit -m "Merged feature branch, resolved conflict in hello.txt"

Verifica della risoluzione del conflitto

Ha risolto correttamente un conflitto di merge. Ora verifichiamo la sua comprensione del passaggio fondamentale successivo alla modifica manuale di un file in conflitto.

Riepilogo: risoluzione manuale dei conflitti

Ha imparato a risolvere manualmente i conflitti di merge! È una competenza fondamentale per qualsiasi sviluppatore.

  • I conflitti si verificano quando Git non riesce a eseguire automaticamente il merge delle modifiche.
  • git status mostra i file non sottoposti a merge.
  • I marcatori di conflitto (<<<<<<<, =======, >>>>>>>) mostrano il codice divergente.
  • Modifichi manualmente i file, rimuova i marcatori e scelga il contenuto finale.
  • Aggiunga all'area di staging i file risolti con git add.
  • Completi il merge con git commit.

La pratica porta alla perfezione! All'inizio i conflitti possono sembrare intimidatori, ma seguendo questi passaggi imparerà a gestirli con sicurezza.

Domande Frequenti

La lezione «Risoluzione manuale dei conflitti di merge» è gratuita?

Sì — il testo completo di «Risoluzione manuale dei conflitti di merge» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Risoluzione manuale dei conflitti di merge»?

Impari a identificare e risolvere manualmente i conflitti di merge che si verificano integrando branch divergenti. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Risoluzione manuale dei conflitti di merge»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Risoluzione manuale dei conflitti di merge
  2. Rebase interattivo della cronologia
  3. Cherry-pick dei commit
  4. Usare Git Rerere per riutilizzare le risoluzioni dei conflitti
← Torna a DevOps Bootcamp