1. ホーム
  2. git

[解決済み] Git のローカルコミットを破棄する

2022-03-06 05:18:04

質問

悪いチェリーピックのせいで、私のローカル Git リポジトリは現在オリジンより 5 コミット進んでおり、良い状態とは言えません。これらのコミットをすべて削除して、もう一度最初からやり直したいと思っています。

もちろん、作業ディレクトリを削除して再クローンすればいいのですが、GitHub からすべてをダウンロードし直すのはやりすぎで、時間を無駄にしそうです。

もしかしたら git revert が必要なのですが、結局は 10 たとえコードそのものを正しい状態に戻したとしても、オリジンより先にコミットしてください (あるいは 6 回でも)。この30分をなかったことにしたいんです。

これを実現する簡単なコマンドはないのでしょうか?明らかなユースケースのように思えるのですが、そのような例は見当たりません。


なお、この質問は、特に コミット , ではない についてです。

  • 未追跡のファイル
  • ステージングされていない変更
  • ステージングされているが、コミットされていない変更

解決方法は?

余分なコミットが自分だけにしか見えない場合は、次のようにすればよいでしょう。 git reset --hard origin/<branch_name> を実行して、オリジンがある場所に移動します。これにより、リポジトリの状態は直前のコミットにリセットされ、ローカルでの変更はすべて破棄されます。

を行うことは git revert を作る 新しい を削除するためにコミットします。 古い のコミットを、全員の履歴が正当に保たれるようにします。