推送到您正在变基的同一个分支没有任何问题。这些图表应该说明为什么这可以正常工作:
可以说这是分支 local_branch 并对其进行几次提交(C 和 D)后提交图的样子。自从您分支 local_branch 以来,其他人已向 origin/master 提交了一次 (E):
A -- B -- E [起源/主人]
\
\
\-- C -- D [local_branch]
然后在运行“git rebase origin/master”之后,提交图将如下图所示。"origin/master" 仍然是一样的,但是 "local_branch" 已经重新设置:
A -- B -- E [起源/主人]
\
\
\-- C -- D [local_branch]
在这个阶段,如果你执行“git push origin local_branch:master”,那么它会导致一个简单的快进。“origin/master”和“local_branch”将是相同的:
A -- B -- E -- C -- D [origin/master],[local_branch]
现在你可以自由地在“local_branch”上做更多的工作。最终你可能会得到这样的东西:
A -- B -- E -- C -- D -- G -- I [起源/主人]
\
\
\-- F -- H [local_branch]
请注意,这看起来很像起始图。你可以一遍又一遍地重复这个过程。
你应该避免推到其他分支,一个你没有变基的分支。那就是你会遇到麻烦的地方(对于另一个分支,在你从“origin/master”重新定位之后,你的“local_branch”历史看起来突然被重写了)。