Crea il conflitto
Esegui l’esercizio in Bash, dentro una directory nuova e vuota. I nomi dei branch e il file sono limitati a questo esempio.
git init -b main
git config user.name "DevSheet Demo"
git config user.email "demo@example.invalid"
printf "colour=blue\n" > settings.txt
git add settings.txt
git commit -m "Base colour"
git switch -c feature
printf "colour=green\n" > settings.txt
git commit -am "Feature colour"
git switch main
printf "colour=red\n" > settings.txt
git commit -am "Main colour"
git merge featureL’ultimo comando deve fermarsi con un conflitto in settings.txt. Il codice di uscita diverso da zero è previsto nell’esercizio.
Leggi le due versioni
git status --short
git diff -- settings.txtCerca UU settings.txt. Nel file, <<<<<<< HEAD introduce il testo del branch corrente, ======= separa le versioni e >>>>>>> feature chiude il testo in arrivo. Queste etichette descrivono un normale merge; un rebase ha un contesto diverso.
Scrivi e controlla il contenuto finale
Nell’esercizio scegli il verde. Sostituisci tutto il file in conflitto con il risultato desiderato, aggiungi solo quel file allo staging e controlla cosa verrà committato.
printf "colour=green\n" > settings.txt
git add settings.txt
git diff --cached
git merge --continue
git status --shortSalva il messaggio di merge quando si apre l’editor. Risultato atteso: stato pulito e un commit di merge. In un progetto reale combina le modifiche secondo il comportamento dell’applicazione ed esegui i controlli pertinenti prima di completare il merge.
Annulla o verifica un merge bloccato
Finché il conflitto è irrisolto, git merge --abort tenta di tornare allo stato precedente. Committa o metti nello stash il lavoro estraneo prima di iniziare: abort potrebbe non ricostruire le modifiche già presenti.
Aggiungere un file allo staging comunica a Git che lo hai risolto, anche se contiene ancora marcatori di conflitto. Leggi il diff dello staging. File binari, conflitti eliminazione/modifica e rinominazioni richiedono decisioni specifiche: sostituire una riga non copre questi casi.