いくつかの変更をコミットし、github のリモート ブランチにプッシュしました。しかし、その後、コミットでいくつかの間違いを犯し、多くの間違ったファイルをプッシュしたことに気付きました。プッシュを元に戻す方法はありますか?
23452 次
2 に答える
20
このgit revert
コマンドは履歴を書き換えませんが、新しいコミットでコミットから変更を取り除きます。その後、もう一度押すだけです。これが推奨される方法です。
特定のコミットが実際には起こらなかったように github を本当に見せたい場合は、方法がありますが、注意してください (特に、他のユーザーが github リポジトリに貢献している場合)。実際、他の人がこの github リポジトリを使用している場合は、今すぐ停止して、最初の段落で説明した方法を使用してください。
これがあなた自身のプライベート github リポジトリであり、最後のプッシュを削除する必要がある場合 (まだ同じローカル ブランチにいると仮定します):
git reset --hard HEAD~
git push -f
それが最後のプッシュでない場合は、いずれかのマニュアル ページを参照するかgit cherry-pick
、git rebase
ローカル ディレクトリを取得して、github の外観を一致させてから、git push -f
. -f
にオプションを指定しない場合git push
、履歴は書き換えられません。また、履歴を書き換えようとすると、プッシュは失敗します。この-f
オプションは、デフォルトでは使用しないでください。
于 2013-11-07T03:31:43.770 に答える