Difference between git pull --rebase and git pull --ff-only

前端 未结 1 1276
滥情空心
滥情空心 2020-12-12 12:53

Let\'s say origin/master has commit A--B--C and my local/master has commit A--B--D.

What will happen if I use

1条回答
  •  有刺的猬
    2020-12-12 13:23

    What will happen if I use git pull --rebase ?

    git pull --rebase is roughly equivalent to

    git fetch
    git rebase origin/master
    

    i.e. your remote changes (C) will be applied before the local changes (D), resulting in the following tree

    A -- B -- C -- D
    

    What will happen if I use git pull --ff-only ?

    It will fail.

    git pull --ff-only corresponds to

    git fetch
    git merge --ff-only origin/master
    

    --ff-only applies the remote changes only if they can be fast-forwarded. From the man:

    Refuse to merge and exit with a non-zero status unless the current HEAD is already up-to-date or the merge can be resolved as a fast-forward

    Since your local and remote branches have diverged, they cannot be resolved by a fast-forward and git pull --ff-only would fail.

    0 讨论(0)
提交回复
热议问题