Digamos que origin/master
tem commit A--B--C
e meu local/master
tem commit A--B--D
.
O que acontecerá se eu usar git pull --rebase
?
O que acontecerá se eu usar git pull --ff-only
?
Existe alguma diferença na árvore de commit resultante?
Respostas:
O que acontecerá se eu usar git pull --rebase?
git pull --rebase
é aproximadamente equivalente a
git fetch
git rebase origin/master
ou seja, suas alterações remotas ( C
) serão aplicadas antes das alterações locais ( D
), resultando na seguinte árvore
A -- B -- C -- D
O que acontecerá se eu usar git pull --ff-only?
Isso irá falhar.
git pull --ff-only
corresponde a
git fetch
git merge --ff-only origin/master
--ff-only
aplica as alterações remotas apenas se elas puderem ser avançadas. Do homem:
Recuse-se a mesclar e saia com um status diferente de zero, a menos que o HEAD atual já esteja atualizado ou a mesclagem possa ser resolvida como um avanço rápido
Como suas filiais locais e remotas divergiram, elas não podem ser resolvidas por um avanço rápido e git pull --ff-only
falharão.
A--B--C
.
git pull --rebase --ff-only
faria? (assumindo que haja C & D)
pull
pode introduzir commits de mesclagem, enquanto você pode preferir trabalhar apenas com rebase e ff.
D
na mudança local? Ambos os comandos seriam equivalentes?