Diciamo origin/master
ha commit A--B--C
e il mio local/master
ha 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-only
applica 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-only
fallirebbero.
A--B--C
.
git pull --rebase --ff-only
? (supponendo che ci siano C e D)
pull
puoi introdurre merge commit, mentre potresti preferire lavorare solo con rebase e ff.
D
nel cambiamento locale? Entrambi i comandi sarebbero equivalenti?