Dal git book:Come impostare no "avanti veloce", come impostazione predefinita quando si utilizza git merge
Noterete la frase "Avanti veloce" in quella unione. Poiché il commit a cui punta il ramo in cui ti sei fuso era direttamente a monte del commit su cui ti trovi, Git sposta il puntatore in avanti. Per dirlo in un altro modo, quando provi a unire un commit con un commit che può essere raggiunto seguendo la cronologia del primo commit, Git semplifica le cose spostando il puntatore in avanti perché non c'è lavoro divergente da unire - questo è chiamato un " avanti veloce".
Tuttavia, l'effetto collaterale di questo "avanzamento rapido" è che se si dispone di un ramo di funzionalità con più commit, si perderà il contesto storico della funzionalità quando si unirà di nuovo in master. In altre parole, i commit non saranno raggruppati come parte di questa funzione.
with fast forward: x---x---x---x---x---x---x
without fast forward: x---x---x x---x---x---x
\x--x--x/
Il modo manuale è di git merge --no-ff
Qualcuno sa come impostare questo come un difetto?
link alle relative documentazione Git: http://git-scm.com/docs/git-config. –
ma tenete presente che 'git pull' (senza --rebase) sta facendo un'unione e quindi creerà un commit merge (solitamente indesiderato). – michas
Stranamente, quando "mi unisco mybranch" non avanza velocemente, anche se uno è possibile. Quando uso l'opzione --ff, avanza velocemente. Ciò che è strano è che merge.ff non sembra essere disattivato a nessun livello, quindi --no-ff sembra essere il comportamento predefinito per me. Ma --ff dovrebbe essere il default: https://git-scm.com/docs/git-merge#git-merge---ff. Qualcuno ha qualche indizio? – Sean