git filter-branch で特定のファイルだけを残す ― 2018年01月31日 09時18分41秒
awk が間に入っているので、文字のエスケープに手間が掛かる。find で特定のファイル名を除外した方が楽な場合も多い。
もし複数のファイルを残したいのなら二重のエスケープが必要になる。
% git filter-branch --tree-filter 'find * ! -name file_name.sh -type f | xargs rm' --prune-empty
% git filter-branch --tree-filter 'find * ! -name "*.sh" -type f | xargs rm' --prune-empty
git はディレクトリの管理を行わない。そのため、上のコマンドで消すのは -type f を使って、ファイルのみとしている。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2018/01/31/8779629/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。