True merge

Un true merge est une fusion qui conserve une “bosse” dans l’historique à l’aide d’un commit de fusion.

Il s’oppose au principe de fast-forward dont l’objectif est d’aplanir l’historique. On peut donc forcer un true merge soit via la configuration Git, ou depuis la ligne de commande avec l’option de fusion --no-ff.

%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { 'commitLabelFontSize': '16px' } }%%
  gitGraph
    commit id: "c1"
    commit id: "c2"
    branch dev
    checkout dev
    commit id: "d1"
    commit id: "d2"
    commit id: "d3"

Après fusion en fast-forward de dev dans main :

%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': { 'commitLabelFontSize': '16px' } }%%
  gitGraph
    commit id: "c1"
    commit id: "c2"
    branch dev
    checkout dev
    commit id: "d1"
    commit id: "d2"
    commit id: "d3"
    checkout main
    merge dev

Voir notre article sur les fusions et conflits pour plus de détail.