私の同僚と私は最近 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'
だから、私は今少し混乱しています。changes
ワークフローは、ローカルにリベースを行った後、整列できるようになると想定していorigin/changes
ました。私はこれを誤解していますか?