私はいくつかの悪いコミット(この例ではD、E、F)があったリポジトリを持っていました。
ABCDEFマスターとオリジン/マスター
ローカルリポジトリを特にで変更しましたgit reset --hard
。リセット前にブランチを作成したので、次のようなレポができました。
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
今、私はそれらの悪いコミットのいくつかの部分が必要だったので、私は必要なビットを選び、いくつかの新しいコミットを作成したので、ローカルに次のようになりました:
A-B-C-G-H master
\ D-E-F old_master
次に、この状態をリモートリポジトリにプッシュします。ただし、git push
Gitを丁寧に実行しようとすると、ブラシが無効になります。
$ git push origin +master:master --force
Total 0 (delta 0), reused 0 (delta 0)
error: denying non-fast forward refs/heads/master (you should pull first)
To git@git.example.com:myrepo.git
! [remote rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@git.example.com:myrepo.git'
リモートリポジトリでローカルリポジトリの現在の状態を取得するにはどうすればよいですか?