Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Fusione dei Rami | Lavorare con i Branch in Git
Nozioni Fondamentali di Git

bookFusione dei Rami

Comprensione della Fusione dei Rami

In Git, la fusione è il processo di integrazione delle modifiche da un ramo a un altro. L'utilizzo più comune è la fusione dei rami feature nel ramo main (ad esempio, main o master). Questo garantisce che le ultime funzionalità e correzioni di bug vengano incorporate nel codice principale.

Flusso di Lavoro di Base per la Fusione

Analisi degli ultimi due commit. Attualmente si lavora sul ramo feature/new-feature.

Come si può vedere, il nostro ramo master è indietro di un commit; tuttavia, prima di fondere le modifiche, è necessario passare al ramo in cui si desidera incorporare le modifiche. Passaggio al ramo master e visualizzazione degli ultimi due commit su questo ramo:

Il branch master è effettivamente indietro di un commit rispetto al branch feature, quindi procediamo con l'unione. Per avviare il processo di merge, è necessario utilizzare il comando git merge e specificare il branch che si desidera unire al branch corrente. Ad esempio, per unire un branch feature chiamato feature/new-feature nel branch master, occorre eseguire il seguente comando:

Note
Nota

Il messaggio visualizzato dopo l'esecuzione del comando contiene la seguente dicitura: Fast-forward, che indica che è stato eseguito un merge di tipo fast-forward.

Discuteremo i due tipi di merge più avanti in questo capitolo; tuttavia, prima di farlo, diamo un'occhiata agli ultimi due commit:

Siamo ancora sul ramo master, tuttavia, questo ramo è ora aggiornato con il nostro ramo feature e entrambi i rami puntano allo stesso commit.

Note
Nota

Il HEAD punta ancora al ramo master poiché eravamo su questo ramo durante l'esecuzione della fusione.

Tipi di merge

In realtà, esistono due tipi di operazioni di merge in Git:

  • merge fast-forward;
  • merge a tre vie.

Merge fast-forward

Quello che abbiamo eseguito è un esempio di merge fast-forward come indicato nel messaggio. Questo tipo di merge viene eseguito se tutti i commit del ramo su cui ci troviamo (ramo attivo) fanno parte anche del ramo che stiamo unendo, il che significa che la cronologia dei commit di questi rami non diverge. Osserviamo la seguente illustrazione per chiarire questo concetto:

Con questo tipo di merge, il puntatore del branch attualmente 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.

Osserviamo la seguente illustrazione di un tale merge:

Ecco come funziona un merge a tre vie:

  1. Git identifica le modifiche apportate su ciascun branch dopo l'antenato comune più recente;
  2. Se ciascun branch presenta modifiche in file diversi o in parti diverse dello stesso file, Git unirà automaticamente le modifiche combinandole nel commit risultante;
  3. In caso contrario, si verificherà un conflitto di merge.
question mark

Seleziona tutti i tipi di merge.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

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

Suggested prompts:

What is a merge conflict and how do I resolve it?

Can you explain the difference between fast-forward and three-way merges in more detail?

When should I use each type of merge in my workflow?

Awesome!

Completion rate improved to 3.57

bookFusione dei Rami

Scorri per mostrare il menu

Comprensione della Fusione dei Rami

In Git, la fusione è il processo di integrazione delle modifiche da un ramo a un altro. L'utilizzo più comune è la fusione dei rami feature nel ramo main (ad esempio, main o master). Questo garantisce che le ultime funzionalità e correzioni di bug vengano incorporate nel codice principale.

Flusso di Lavoro di Base per la Fusione

Analisi degli ultimi due commit. Attualmente si lavora sul ramo feature/new-feature.

Come si può vedere, il nostro ramo master è indietro di un commit; tuttavia, prima di fondere le modifiche, è necessario passare al ramo in cui si desidera incorporare le modifiche. Passaggio al ramo master e visualizzazione degli ultimi due commit su questo ramo:

Il branch master è effettivamente indietro di un commit rispetto al branch feature, quindi procediamo con l'unione. Per avviare il processo di merge, è necessario utilizzare il comando git merge e specificare il branch che si desidera unire al branch corrente. Ad esempio, per unire un branch feature chiamato feature/new-feature nel branch master, occorre eseguire il seguente comando:

Note
Nota

Il messaggio visualizzato dopo l'esecuzione del comando contiene la seguente dicitura: Fast-forward, che indica che è stato eseguito un merge di tipo fast-forward.

Discuteremo i due tipi di merge più avanti in questo capitolo; tuttavia, prima di farlo, diamo un'occhiata agli ultimi due commit:

Siamo ancora sul ramo master, tuttavia, questo ramo è ora aggiornato con il nostro ramo feature e entrambi i rami puntano allo stesso commit.

Note
Nota

Il HEAD punta ancora al ramo master poiché eravamo su questo ramo durante l'esecuzione della fusione.

Tipi di merge

In realtà, esistono due tipi di operazioni di merge in Git:

  • merge fast-forward;
  • merge a tre vie.

Merge fast-forward

Quello che abbiamo eseguito è un esempio di merge fast-forward come indicato nel messaggio. Questo tipo di merge viene eseguito se tutti i commit del ramo su cui ci troviamo (ramo attivo) fanno parte anche del ramo che stiamo unendo, il che significa che la cronologia dei commit di questi rami non diverge. Osserviamo la seguente illustrazione per chiarire questo concetto:

Con questo tipo di merge, il puntatore del branch attualmente 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.

Osserviamo la seguente illustrazione di un tale merge:

Ecco come funziona un merge a tre vie:

  1. Git identifica le modifiche apportate su ciascun branch dopo l'antenato comune più recente;
  2. Se ciascun branch presenta modifiche in file diversi o in parti diverse dello stesso file, Git unirà automaticamente le modifiche combinandole nel commit risultante;
  3. In caso contrario, si verificherà un conflitto di merge.
question mark

Seleziona tutti i tipi di merge.

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 4
some-alt