私は間違いを犯し、gitにいくつかの変更をコミットしましたが、コミットすべきではありませんでした。コミットした後、変更をプッシュしました。次に、次のコマンドを使用して、変更を再試行しました。
git reset --hard head
次のコマンドを使用して、この「リセット」をリモートリポジトリにプッシュします。
git Push MyBranch
しかし、私はこのエラーを受け取っています:
remote: error: denying non-fast-forward refs/heads/branch (you should pull first)
私は成功せずにこのコマンドを使用しようとしました:
git Push -f "Origin"
私にできることはありますか?
git Push -f Origin myBranch
動作するはずです(MyBranchが他のレポジトリで既に取得されている場合、これが危険になる可能性があることに注意してください)
注:リモートリポジトリ(「Origin」)に config が設定されている場合
receive.denyNonFastForwards true
早送りでないプッシュは(強制された場合でも)拒否されます。
「 「git Push --force」を拒否するようにgitリポジトリを設定する方法はありますか? 」を参照してください。
OP user654019 レポート
今回は
denyNonFastForwards
をfalse
に設定し、-f
を使用してプッシュを強制することで、問題を解決できました。
OPがレポにアクセスできなかった場合、彼/彼女は以下を行う必要があります。
git reset --hard?
"を参照):git reset HEAD@{1}
git revert
を使用して、マージをキャンセルするnewコミットを作成します。git revert -m 1 HEAD~
(あなたの場合)例:
$ git revert -m 1 [sha_of_C8]
Finished one revert.
[master 88edd6d] Revert "Merge branch 'jk/post-checkout'"
1 files changed, 0 insertions(+), 2 deletions(-)
マージを元に戻す方法についての完全な説明は、 here にあります。
マージコミットによって導入された変更を元に戻すものを含め、newコミットのみを生成するという考え方が残っています。
その後、早送りの変更として、その新しいコミットをプッシュできます。
プッシュするrefを指定する必要があります。
git Push -f Origin MyBranch