2013年4月17日水曜日

ローカルで削除されたファイルを一括でgit rmする

Mac環境で、ローカルのファイルを削除してgitのindexだけが残ってしまっている場合に、一括でgit rmする方法の紹介です。

コマンドは以下の通り。これをコピペして実行してください。
git status | grep deleted: | cut -c 15- | sed -e 's/ /\\ /g' | xargs git rm

やっていることは、

1. git statusでindexの変更取得
2. grep deleted: で削除されたファイルの行だけを抜き出す。
3. cut -c 15- でファイルのパスにあたる15文字以降だけを抜き出す
4. sed -e 's/ /\\ /g'で、ぱすに空白が含まれてしまっている場合にエスケープする
5. 抜き出されたパスをgit rmする

という手順になります。
行程3の部分が、gitのバージョンによって変化するかもしれないのでもしうまくいかない場合は
git status | grep deleted: | cut -c 15-
だけで実行してみて、正しくパスが取得できているかを確認してみてください。

0 件のコメント:

コメントを投稿