我和我的同事最近实现了 git,并且刚刚尝试实现变基。所以,我们有一个远程master
分支,在本地克隆,我有一个本地(和远程)分支,名为changes
. 在本地,我们在 上做了一些工作changes
,所以它看起来像这样:
master: A
\
changes: B-C-D
因此,通过来自其他地方的不相关合并,master
得到了升级,所以我们有:
master: A-E
\
changes: B-C-D
所以,我做了一个变基:
git checkout changes
git rebase E (via a tag)
所以,在我的本地仓库中,我有:
master: A-E
\
changes: B-C-D
所以,我试图然后做一个推动,但得到:
remote: error: denying non-fast-forward refs/heads/changes (you should pull first)
似乎,传统的智慧是大力推动我的工作changes
回到origin/changes
:
git push -f origin changes
其中回应:
remote: error: denying non-fast-forward refs/heads/changes (you should pull first)
To /opt/git/online.git
! [remote rejected] changes -> changes (non-fast-forward)
error: failed to push some refs to '/opt/git/online.git'
所以,我现在有点困惑。我认为工作流程是在对我的 local 进行 rebase 之后changes
,我可以origin/changes
排队。我误解了这个吗?