假设origin/master
has commit A--B--C
和my local/master
has commit A--B--D
。
如果我使用会怎样git pull --rebase
?
如果我使用会怎样git pull --ff-only
?
生成的提交树有什么区别吗?
Answers:
如果我使用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
可能会失败。
A--B--C
。
git pull --rebase --ff-only
办?(假设有C&D)
pull
可以引入合并提交,而您可能更喜欢仅使用rebase和ff。
D
本地更改没有提交怎么办?这两个命令会等效吗?