1. ホーム
  2. git

[解決済み] リモートブランチからいくつかのコミットを永久に削除する方法

2022-03-24 20:22:49

質問

歴史の書き換えで悪いことだとは思うのですが。

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

どのように解決するのですか?

あなたは git reset --hard は、作業ツリーとインデックスから変更を削除するために、ローカルブランチの git push --force を変更したローカルブランチをリモートに転送します。( 他の解決策はこちら リモートブランチを削除し、再プッシュする必要があります)

この SO回答 は、このようなコマンドの危険性を示しています。特に、人々が自分自身のローカルリポのためにリモートの履歴に依存している場合です。
を指摘する用意が必要です。 上流のリベースからの復旧 の部分は git rebase 男性ページ


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>