git rebase upstream/master
和git pull --rebase upstream master
之间是否有区别,如果有,是什么?遥控器可以是任何遥控器,不一定是上游。git rebase upstream/master vs git pull --rebase upstream master
32
A
回答
32
git pull --rebase
将fetch (git fetch
)首先更新upstream/master
提交。
如果你只是重新编号没有第一次更新upstream/master
,你不会得到相同的结果。
我说明它在 “master
branch and 'origin/master
' have diverged, how to 'undiverge' branches'?”
SnakE提到in the comments即git pull --rebase
是不准确git fetch && git rebase origin/master
。
请参阅 “what does "git pull --rebase
" do?”
(origin/master)
|
A--B--C (master)
\
B'--D (actual origin/master after changing B and force pushing)
什么git pull --rebase
确实,在这种情况下,就是:
git fetch origin
git rebase --onto origin/master B master
这里:
- origin/master的是新更新的
origin/master
(B'
) B
是旧的origin/master
(之前获取更新的话)master
是分支上的origin/master
这不同于git fetch
在+ git rebase origin/master
的pull --rebase
命令试图找出顶部重播其提交的真的当地一些,并且来自上一次获取的上游。
为此,它会查看远程跟踪分支的reflog(本例中为
origin/master
)。此reflog代表origin
以“最近的第一个”顺序的连续git fetch
操作的提示。对于每个reflog条目(
origin/[email protected]{1}
,然后...{2}
等),它会检查该提交是否是当前分支头的一个祖先master
。只要它找到一个,它就会选择它作为rebase的起点(上例中的B
)。
相关问题
- 1. git rebase vs git rebase <upstream>
- 2. git pull VS git fetch git rebase
- 3. `git svn rebase` vs`git rebase trunk`
- 4. git rebase after pull
- 5. phpstorm git pull --rebase
- 6. git rebase i vs git rebase --onto
- 7. “git rebase origin”与“git rebase origin/master”
- 8. git pull --rebase upstream&git push origin拒绝非快进?
- 9. git stash pop vs git rebase
- 10. 撤销git pull --rebase?
- 11. Git - 合并vs rebase
- 12. git pull --rebase,git rebase和git merge之间的区别
- 13. git pull --rebase not yeilding deseired outcome
- 14. git branches rebase after rebase
- 15. git rebase master with child branches
- 16. git rebase from master to remote branch。!
- 17. Git Workflow和Rebase
- 18. Git rebase flow
- 19. git合并VS rebase使用git svn
- 20. Git合并后git rebase?
- 21. git rebase master错误地执行了git pull而不是git push origin/your_branch -f
- 22. 替代git rebase
- 23. 当我用“--rebase”做git pull origin master时会发生什么
- 24. git pull --rebase origin master每次出现时都会重新起始
- 25. 'git rebase`冲突
- 26. git pull和git pull之间的区别--rebase
- 27. git rebase after git恢复
- 28. git rebase结果
- 29. 在rebase后撤销git commit
- 30. 从远程分支的pull rebase是不同的git fetch + rebase
所以'git pull --rebase upstream master'类似于'git fetch upstream && git rebase upstream/master'? – Dennis 2013-05-10 04:01:59
@丹尼斯,是的。 – VonC 2013-05-10 06:43:50
其实没有。想象一下,你拉过历史“A-B”,并在其上做了一个改变,“A-B-C”。然后其他人修改'B'到'B'',并且推动他们的变化,以便原点现在变成'A-B'-D'。现在,如果你执行'git fetch && git rebase origin/master',那么rebase将会失败并发生冲突。然而'git pull --rebase'会解决这个问题并最终以'A-B'-D-C'结尾。 'pull --rebase'地毯下肯定会发生一些魔法。编辑:[prooflink](http://gitolite.com/git-pull--rebase.html) – SnakE 2015-03-17 18:34:48