【发布时间】:2014-10-15 08:07:48
【问题描述】:
假设origin/master 提交A--B--C 而我的local/master 提交A--B--D。
如果我使用git pull --rebase 会发生什么?
如果我使用git pull --ff-only 会发生什么?
生成的提交树有什么不同吗?
【问题讨论】:
标签: git git-rebase git-pull
假设origin/master 提交A--B--C 而我的local/master 提交A--B--D。
如果我使用git pull --rebase 会发生什么?
如果我使用git pull --ff-only 会发生什么?
生成的提交树有什么不同吗?
【问题讨论】:
标签: git git-rebase git-pull
如果我使用 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 会失败。
【讨论】:
D 会发生什么?两个命令是否等效?
A--B--C。
git pull --rebase --ff-only 会做什么? (假设有C&D)
pull 可以引入合并提交,而您可能更喜欢仅使用 rebase 和 ff。