git pull --rebase和git pull --ff-only之间的区别

时间:2014-08-21 15:47:04

标签: git git-rebase git-pull

我们说origin/master已提交A--B--C而我的local/master已提交A--B--D

如果我使用git pull --rebase会怎样?

如果我使用git pull --ff-only会怎样?

生成的提交树有什么不同吗?

1 个答案:

答案 0 :(得分:91)

  

如果我使用git pull --rebase会发生什么?

git pull --rebase大致相当于

git fetch
git rebase origin/master

即。您的远程更改(C)将在本地更改(D)之前应用,从而生成以下树

A -- B -- C -- D

  

如果我使用git pull --ff-only会发生什么?

它会失败。

git pull --ff-only对应

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

--ff-only仅在可以快速转发时应用远程更改。来自男人:

  

拒绝合并并以非零状态退出,除非当前HEAD已经是最新的,或者合并可以解析为快进

由于您的本地和远程分支机构存在分歧,因此快进无法解决这些分支,git pull --ff-only会失败。