git filter-branch で特定のファイルだけを残すのは find 内完結の方が良い ― 2019年01月29日 13時14分09秒
そこで、-exec を使って若干完結化。
find の -exec を \; で終らせると、コマンドは各一つづつのファイルに対してコマンドが実行され、\+ だと、複数の対象ファイルに対してコマンドが実行される様になる。
% git filter-branch --tree-filter 'find * ! -type f -name "*.sh" -type f -exec rm {} \+' --prune-empty
一番ややこしかったのが、文字列のエスケープ。filter-branch に渡すコマンドが一段回展開されてしまうので、普段の要領で find を使うと何処にバックスラッシュをつけるのかがこんがりやすい。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2019/01/29/9030150/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。