CONTATTACI

Guide per aspiranti programmatori

Lezione 41 / 52

Il comando Git merge in Git

Il comando git merge in Git serve a combinare più sequenze di commit in una cronologia unificata. Nei casi d’uso più frequenti, git merge viene utilizzato per combinare due branch.

Abitualmente, specie per chi utilizza piattaforme come GitHub o GitLab per come server per lo sviluppo condiviso, le operazioni di merge vengono effettuate direttamente dalla piattaforma sul repository remoto nel momento in cui le modifiche a una pull/merge request vengono approvate e incluse nel branch principale.

È comunque utile conoscere i meccanismi base del merge, visto che si tratta di un processo essenziale in Git. In particolare è importante considerare che:

  • in Git l’operazione di merge combina sequenze di commit in una singola sequenza di commit unificata
  • esistono due modi in cui viene effettuato il merge: Fast Forward e Three Way
  • Git è in grado di completare automaticamente il merge se non ci sono conflitti tra le sequenze di commit

Prima di procedere a un merge, è opportuno eseguire alcuni step preparatori per essere sicuri che l’operazione proceda senza problemi, specie se si sta per eseguire localmente il merge di branch remoti:

  • individuare i due branch che si vogliono mergiare, quello che riceverà modifiche (per esempio. main) e quello che si vuole unire (per esempio new-feature)
  • fare fetch e pull sui tali branch delle rispettive modifiche remote
  • fare checkout nella working copy locale del branch che riceverà le modifiche

Si potrà, quindi, far partire il merge tramite il comando git merge <branch-to-be-merged>.

L’effettiva modalità e risultato del merge dipende dallo rispettivo stato dei due branch.

Fast Forward Merge in Git

git checkout -b new-feature main

git add <file>
git commit -m "Start a feature"
git add <file>
git commit -m "Finish a feature"

git checkout main
git merge new-feature

 

Fast Forward Merge

Fast Forward Merge

Un merge fast-forward in Git può verificarsi quando è presente un percorso lineare dall’ HEAD del ramo da unire all’ HEAD del ramo di destinazione. In questo caso, Git non effettua un vero merge, ma semplicemente sposta la HEAD del ramo di destinazione alla HEAD del ramo da unire.

Le due history sono state effettivamente combinate, ma la history del nostro branch new-feature era, per così dire, il normale avanzare della history del branch main.

Three Way Merge in Git

git branch new-feature

git add <file>
git commit -m "Fix a bug"

git checkout new-feature

git add <file>
git commit -m "Start a feature"
git add <file>
git commit -m "Finish a feature"

git checkout main
git merge new-feature

Three Way Merge

Three Way Merge

Nel caso in cui i branch siano divergenti, Git deve combinare le due history attraverso un three-way merge. In questa modalità viene usato un tipo di commit dedicato, il merge commit per unire insieme le due history.

I commit di merge sono unici rispetto agli altri commit, poiché hanno due commit genitore. Nel creare un commit di merge, Git tenterà di unire automaticamente le cronologie separate. Se Git riscontra che la stessa parte di file è stata cambiata in entrambe le cronologia, non sarà in grado di combinarle automaticamente. Questo scenario è un conflitto di controllo della versione e Git richiederà l’intervento dell’utente per continuare.
Il nome “three way” indica che a Git servono tre commit per capire come realizzare il merge: i due commit HEAD dei due branch e il rispettivo genitore comune.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.