[英]Confusion about git pull --rebase
根据我发现的一个教程: https : //www.atlassian.com/git/tutorials/syncing/git-pull
git pull --rebase将提交追加到本地树。
A - B - C (origin/master)
/
D - E - F - G (local master)
在本地进行git pull --rebase之后,本教程将校准为:
A - B - C (origin/master)
/
D - E - F - G - A - B - C (local master)
我希望它像这样:
A - B - C (origin/master)
/
D - A - B - C - E' - F' - G' (local master)
我想念什么吗? 还是他们错了?
你是对的。
该页面是错误的,不仅是图形,而且是伴随它的文本:
在此图中,我们现在可以看到,rebase pull不会创建新的H提交。 相反,该基准数据库已复制了远程提交A–B–C,并将它们附加到本地原始/主提交历史记录中。
手册页更加清晰:
-r,-rebase [= false | true |保留|交互式]
When true, rebase the current branch on top of the upstream branch after fetching. If there is a remote-tracking branch corresponding to the upstream branch and the upstream branch was rebased since last fetched, the rebase uses that information to avoid rebasing non-local changes.
如果有这个。
A - B - C (origin/master)
/
D - E - F - G (master)
在git pull --rebase
,假设没有新的提交被获取,您将拥有它。
D - A - B - C [origin/master]
\
E' - F' - G' [master]
E,F和G在origin/master
顶部重播。
请注意,只有一个A,B和C。远程和本地分支都共享同一提交树。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.