ブランチからコミットを削除するにはどうすればいいですか? 質問する

ブランチからコミットを削除するにはどうすればいいですか? 質問する

ブランチ履歴からコミットを削除するにはどうすればよいですか? を使用する必要がありますかgit reset --hard HEAD?

ベストアンサー1

注意: git reset --hard 作業ディレクトリの変更は削除されます。このコマンドを実行する前に、保持しておきたいローカルの変更を必ず保存してください

あなたがそのコミットに座っていると仮定すると、このコマンドはそれを破壊します...

git reset --hard HEAD~1

HEAD~1ヘッドの前のコミットを意味します

または、 の出力を確認しgit log、バックアップするコミットのコミット ID を見つけて、次のように実行することもできます。

git reset --hard <sha1-commit-id>

すでにプッシュしている場合は、強制プッシュして削除する必要があります...

git push origin HEAD --force

ただし、他の人がそれをプルしている可能性がある場合は、新しいブランチを開始した方がよいでしょう。なぜなら、他の人がプルすると、そのブランチの作業内容が自分の作業内容にマージされ、再びプッシュアップされるからです。

すでにプッシュしている場合は、 を使用して変更を元に戻す「ミラー イメージ」コミットを作成する方がよい場合がありますgit revert。ただし、両方のコミットがログに残ります。


FYI:git reset --hard HEADは、WORK IN PROGRESS を削除したい場合に最適です。最新のコミットにリセットされ、作業ツリーとインデックス内のすべての変更が消去されます。

git stashは、ハードモードでリセットして永久に削除するのではなく、必要に応じて後で復元できることを除いて同じですgit stash list。と を使用してスタッシュを確認します。git stash show 'stash@123'


最後に、「削除」したコミットを見つける必要がある場合、git reflogリポジトリをガベージ コレクションしていない限り、通常はそこに存在します。

おすすめ記事