2

問題の有効な解決策が見つかりません:

ローカルおよびリモート リポジトリでコミットを削除する方法。ここに 1 つの解決策があります。resetしかし、これを試すと、ローカル リポジトリでコマンドを使用して戻ることができます。しかし、私はそれを押すことはできません。エラーメッセージには、次 のようにremote: error: denying non-fast-forward refs/heads/master (you should pull first) 記載pullされています。

手伝ってくれますか?

編集 - 私の試み:

$ git reset --hard HEAD^1
HEAD is now at 1c50f9c good commit

$ git push -f
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To E:/reps/gf.git
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'E:/reps/gf.git'
4

1 に答える 1

3

リモートリポジトリには、サーバー側での早送り以外のプッシュを許可しない設定が含まれている可能性があります。次の 2 つのオプションがあります。

  1. サーバー管理者に連絡して、あなたのケースを説明し、(一時的に) no-fast-forward-push ポリシーを取り消すように依頼してくださいgit config receive.denyNonFastForwards-f(プッシュするにはフラグが必要です。)

  2. git revertの代わりに使用git resetし、結果のコミットをプッシュします。コミットとその逆の両方が表示されますが、それを回避できない場合があります。元のコミットに機密データが含まれていない限り、これは大きな問題になるはずです。git コミットは常に元に戻されます。元のコミットに機密データが含まれている場合は、オプション 1 を参照してください。

于 2013-04-04T09:55:22.240 に答える