我一直在复习Git的基础知识,看到Atlassian文档中关于拉取、合并和变基的教程,其中有一点我不是很理解。分支的基本状态如下(页面上有实际图像,由于我的声誉无法发布它们):
A - B - C (Master on remote origin)
/
(Local origin/master) D - E - F - G (Local master)
现在我们想要从远程拉取更改并进行变基。从阅读其他文档和尝试变基中,我本来以为
git pull --rebase
会将提交E-F-G
重放在A-B-C
之上。但是,Atlassian教程却说结果看起来像这样: A - B - C (Master on remote origin)
/
(Local origin/master) D - E - F - G - A - B - C (Local master)
因此,远程更改已经被合并到本地分支上。我原本认为它不是这样工作的(至少没有特殊命令),而且似乎比另一种选择更具侵入性。如果你现在推送,你将重写许多远程历史记录。
文档在这里是否正确?在哪些情况下会发生这种情况?大多数描述似乎暗示或显示远程分支被获取,然后在其之上重新设置本地分支,这也似乎是最有意义的。
我想我一定是误解了什么或者我误读了图表。