Diciamo origin/masterha commit A--B--Ce il mio local/masterha commit A--B--D.
Cosa succederà se lo uso git pull --rebase?
Cosa succederà se lo uso git pull --ff-only?
C'è qualche differenza nell'albero di commit risultante?
Risposte:
Cosa succederà se utilizzo git pull --rebase?
git pull --rebase è più o meno equivalente a
git fetch
git rebase origin/master
cioè le modifiche remote ( C) verranno applicate prima delle modifiche locali ( D), risultando nella seguente struttura ad albero
A -- B -- C -- D
Cosa succederà se utilizzo git pull --ff-only?
Fallirà.
git pull --ff-only corrisponde a
git fetch
git merge --ff-only origin/master
--ff-onlyapplica le modifiche remote solo se possono essere fatte avanzare rapidamente. Dall'uomo:
Rifiuta di unire e uscire con uno stato diverso da zero a meno che l'attuale HEAD non sia già aggiornato o l'unione possa essere risolta come un avanzamento rapido
Poiché le filiali locali e remote si sono discostate, non possono essere risolte con un avanzamento rapido e git pull --ff-onlyfallirebbero.
A--B--C.
git pull --rebase --ff-only? (supponendo che ci siano C e D)
pullpuoi introdurre merge commit, mentre potresti preferire lavorare solo con rebase e ff.
Dnel cambiamento locale? Entrambi i comandi sarebbero equivalenti?