git filter-branch で特定のファイルだけを残す2018年01月31日 09時18分41秒

git filter-branch でディレクトリを残すではあるディレクトリに入っているファイルを消す方法を紹介した。

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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2018/01/31/8779629/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。