繁体   English   中英

关于git pull --rebase的困惑

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM