10

いくつかの変更をコミットし、github のリモート ブランチにプッシュしました。しかし、その後、コミットでいくつかの間違いを犯し、多くの間違ったファイルをプッシュしたことに気付きました。プッシュを元に戻す方法はありますか?

4

2 に答える 2

20

このgit revertコマンドは履歴を書き換えませんが、新しいコミットでコミットから変更を取り除きます。その後、もう一度押すだけです。これが推奨される方法です。

特定のコミットが実際には起こらなかったように github を本当に見せたい場合は、方法がありますが、注意してください (特に、他のユーザーが github リポジトリに貢献している場合)。実際、他の人がこの github リポジトリを使用している場合は、今すぐ停止して、最初の段落で説明した方法を使用してください。

これがあなた自身のプライベート github リポジトリであり、最後のプッシュを削除する必要がある場合 (まだ同じローカル ブランチにいると仮定します):

git reset --hard HEAD~
git push -f

それが最後のプッシュでない場合は、いずれかのマニュアル ページを参照するかgit cherry-pickgit rebaseローカル ディレクトリを取得して、github の外観を一致させてから、git push -f. -fにオプションを指定しない場合git push、履歴は書き換えられません。また、履歴を書き換えようとすると、プッシュは失敗します。この-fオプションは、デフォルトでは使用しないでください。

于 2013-11-07T03:31:43.770 に答える