Fusione dei Rami
Scorri per mostrare il menu
Comprensione della fusione dei branch
In Git, fusione è il processo di integrazione delle modifiche da un branch a un altro. Il caso d'uso più comune è la fusione dei branch feature nel branch main (ad esempio, main o master). Questo garantisce che le ultime funzionalità e correzioni di bug siano incorporate nel codice principale.
Flusso di lavoro base per la fusione
Per prima cosa, visualizzazione degli ultimi due commit.
Ricorda che sei attualmente sul branch feature/new-feature.
git log -n 2
Come puoi vedere, il branch master è un commit indietro.
Prima di unire, è necessario passare al branch in cui verranno integrati i cambiamenti.
Passa al branch master e visualizza i due commit più recenti su di esso:
git checkout master
git log -n 2
Il branch master è effettivamente un commit indietro rispetto al branch feature.
Per unirli, utilizzare il comando git merge e specificare il branch da unire al branch corrente.
Ad esempio, per unire il branch feature/new-feature in master, eseguire:
git merge feature/new-feature
Il messaggio visualizzato dopo l'esecuzione del comando contiene la seguente dicitura: Fast-forward, che indica che è stata eseguita una fusione fast-forward.
Esplorerai i due tipi di merge più avanti in questo capitolo. Prima di ciò, visualizza gli ultimi due commit:
git log -n 2
Sei ancora sul branch master, ma ora è aggiornato con il branch feature, con entrambi i branch che puntano allo stesso commit.
HEAD punta ancora al branch master perché eri su questo branch durante l'esecuzione del merge.
Tipi di merge
Esistono due tipi di operazioni di merge in Git:
- Merge fast-forward;
- Merge a tre vie.
Merge fast-forward
Il merge che hai eseguito è un merge fast-forward, come indicato nel messaggio. Questo tipo si verifica quando tutti i commit del branch attualmente selezionato sono presenti anche nel branch che viene unito, il che significa che le loro storie dei commit non divergono.
Consulta la seguente illustrazione per chiarimenti:
Con questo tipo di merge, il puntatore del branch selezionato viene semplicemente aggiornato all'ultimo commit.
Merge a tre vie
Tuttavia, se la cronologia dei branch si è diversa, ovvero dopo un certo commit comune sono stati effettuati nuovi commit separatamente su ciascun branch, viene eseguito un merge a tre vie.
Il termine "a tre vie" si riferisce alle tre versioni coinvolte nel merge:
- La versione del antenato comune più recente (commit);
- La versione dell'ultimo commit nel branch corrente (HEAD);
- La versione dell'ultimo commit nel branch che viene unito.
Osserva la seguente illustrazione di questo tipo di merge:
Ecco come funziona un merge a tre vie:
- Git identifica le modifiche apportate su ciascun branch dopo il più recente antenato comune;
- Se ogni branch ha modifiche in file diversi o in parti diverse dello stesso file, Git unirà automaticamente le modifiche combinandole nel commit risultante;
- Altrimenti si verificherà un conflitto di 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