リモートブランチからいくつかのコミットを永久に削除する方法 質問する

リモートブランチからいくつかのコミットを永久に削除する方法 質問する

それが歴史の書き換えで悪いことだということはわかっています。

しかし、リモート ブランチからいくつかのコミットを永久に削除するにはどうすればよいでしょうか?

ベストアンサー1

ローカルgit reset --hardブランチで作業ツリーとインデックスから変更を削除し、git push --force(またはgit push --force-with-lease) 修正したローカル ブランチをリモートにコピーします。
(他の解決策はこちら(リモートブランチを削除して再度プッシュする)

これだから答えるは、特に人々が自分のローカルリポジトリのリモート履歴に依存している場合、このようなコマンドの危険性を示しています。
人々にアップストリームリベースからの回復のセクションgit rebaseマニュアルページ。

さらに、リンゴコメントリモートブランチが強制プッシュから保護されている場合、次git revertのようにこの答えが好ましいかもしれません。


Git 2.23(2019年8月、9年後)では、新しいコマンドを使用します。git switch
あれは:git switch -C mybranch origin/mybranch~n
(n削除するコミットの数に置き換えてください)

これにより、インデックスと作業ツリーが復元されますgit reset --hard
ドキュメント追加:

-C <new-branch>
--force-create <new-branch>

と似ています--createが、すでに存在する場合は<new-branch>にリセットされます<start-point>
これは、次の便利なショートカットです。

$ git branch -f <new-branch>
$ git switch <new-branch>

おすすめ記事