推送到您要重新定据的同一分支没有任何问题。 这些图应该说明为什么它可以正常工作:
可以说,这是在分支local_branch并对其进行两次提交(C和D)之后,提交图的外观。 自您分支local_branch以来,其他人已对原始/主服务器进行了一次提交(E):
A -- B -- E [origin/master]
\
\
\-- C -- D [local_branch]
然后,在运行“ git rebase origin / master”之后,提交图将类似于下图。 “原件/母版”仍然相同,但是“ local_branch”已重新设置基础:
A -- B -- E [origin/master]
\
\
\-- C -- D [local_branch]
在此阶段,如果您执行“ git push origin local_branch:master”,则将导致简单的快进。 “来源/主服务器”和“ local_branch”将相同:
A -- B -- E -- C -- D [origin/master],[local_branch]
现在,您可以自由地在“本地分支”上做更多的工作。 最终,您可能会得到以下信息:
A -- B -- E -- C -- D -- G -- I [origin/master]
\
\
\-- F -- H [local_branch]
请注意,这看起来很像起始图。 您可以不断重复此过程。
您应该避免推送到其他分支,而不是从其分支的基础。 那就是您遇到麻烦的地方(在另一个分支中,在您从“起源/母版”重新建立基础之后,看起来您的“ local_branch”的历史记录突然被重写了)。