1. ホーム
  2. git

Git - filter-branch を使って空のチェンジセットを持つコミットを削除する

2023-09-18 11:35:11

質問

git filter-branch を使って、チェンジセットのないコミットを削除するにはどうしたらよいですか?

git history を使って書き直しました。

git filter-branch --tree-filter 'rm -r -f my_folder' -f HEAD

これはうまくいっていたのですが、今は空のチェンジセットを持つコミットがたくさんあります。これらのコミットを削除したいと思います。できればmsysgitで。

私は4000以上のコミットを持っていて、それらの半分が削除されなければならないので、リベースは本当にオプションではありません。

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

単に --prune-empty オプションを追加するだけです。

git filter-branch --tree-filter 'rm -rf my_folder' --prune-empty -f HEAD

(もちろん、他の参照先がある場合は、すべてを -- --all の代わりに HEAD .)

とは互換性がないことに注意してください。 --commit-filter ; その場合 チャールズ・ベイリーがあなたの答えを持っています .