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 Git & GitHub Professional Workflow 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 Git & GitHub Professional Workflow, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Git & GitHub Professional Workflow 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 statusInterpretare 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
>>>>>>> featureRisolvere 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.txtCompletare 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 statusmostra 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 Git & GitHub Professional Workflow, passa a CoddyKit PRO. Il corso Git & GitHub Professional Workflow 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 Git & GitHub Professional Workflow 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 Git & GitHub Professional Workflow?
Non è richiesta alcuna esperienza precedente. Git & GitHub Professional Workflow 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 Git & GitHub Professional Workflow?
Sì. Ogni lezione Git & GitHub Professional Workflow 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
- Risoluzione manuale dei conflitti di merge
- Rebase interattivo della cronologia
- Cherry-pick dei commit
- Usare Git Rerere per riutilizzare le risoluzioni dei conflitti