0

ローカルでリセットを行った後、リモートの git リポジトリを元に戻すにはどうすればよいですか?

誤ってマスター ブランチに変更をプッシュしてしまいました。ローカル ブランチのコードを最後の適切なコミットに戻しました。今、私はリモートリポジトリを更新して、それが最後のコミットでもあるようにしようとしています-将来のプルとクローンは最後の適切なコミットにありますが、エラーが発生しています。

これが私が試したことです:

git reset --hard <last-good-commit-hash>

うまくいきました

次に、リモート リポジトリを更新するには、

git push origin master

それは私に与えました:

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'host:/srv/git/cms'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

次に、試しました:

git push --force origin master

Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To host:/srv/git/cms
 ! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'host:/srv/git/cms'

プルすると、悪いコミットに戻ります。

4

2 に答える 2

2

サーバー上の構成ファイルを確認してくださいdenyNonFastForwards=true

はいの場合は、次のようにします。

git config receive.denyNonFastForwards false
于 2012-06-20T20:21:19.583 に答える
2

git reset <commit>試す代わりに

git revert <commit>
git push origin master
于 2012-06-20T19:16:35.043 に答える