ごらくらいふ

プログラミングしたりゲームしたり

Gitでuntracked filesの一覧を出したあと削除するとき、ヒストリ展開を使えば楽だった

git resetでちょっと巻き戻したときとか、非追跡なファイルの削除にはいつも手間取っていた。 まずコマンドで一覧を出して、絞って、同じコマンドのあたまに rm をつけて。

手作業でめんどうなことこの上ない。でもシェルは強力なツールなのでしれっと解決してしまう。

結論

git status --untracked-files | grep '*.foo'
rm -iv $(!!)

gitで管理していないファイルのリストを見る

git status --untracked-files

ここからさらに処理したい対象をgrep等で絞ってもよい。

ヒストリ展開を使って指定

bash, zshで確認したが、ヒストリ展開機能というものがあり、特定の記法を行うとマッチするコマンドに置き換えてくれる。

!! と入力すれば、直近のコマンドとなる。

よって非追跡ファイルのリストをサブシェルで確認し、 rm のパラメータにしてしまえばよいのだった。