TLTR
git clean -Xi
または
git clean -Xid
便利コマンド -n
-n
をつけるとドライランになって。実際には削除せず、何を削除するかを表示するだけなので確認するのに便利。
-X
.gitignoreで指定されているファイルを削除する。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ git clean -n -X Would remove Makefile Would remove Makefile.in Would remove aclocal.m4 Would remove compile Would remove config.guess Would remove config.guess~ Would remove config.h Would remove config.h.in Would remove config.log Would remove config.status ... $ |
警告がでる
1 2 3 |
$ git clean -X fatal: clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean $ |
clean.requireForce
が設定されていなくてデフォルトでtrue
になるので、もっとオプションが必要らしい。
-i
: インタラクティブ、一個ずつ確認しながら削除する。-f
:clean.requireForce
を無視して削除する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$ git clean -Xi Would remove the following items: Makefile doc/magic.4 src/apptype.lo src/is_json.lo Makefile.in install-sh src/ascmagic.lo src/is_tar.lo aclocal.m4 libtool src/asctime_r.lo src/libmagic.la compile ltmain.sh src/buffer.lo src/localtime_r.lo config.guess m4/libtool.m4 src/cdf.lo src/magic.h config.guess~ m4/ltoptions.m4 src/cdf_time.lo src/magic.lo config.h m4/ltsugar.m4 src/compress.lo src/pread.lo config.h.in m4/ltversion.m4 src/ctime_r.lo src/print.lo config.log m4/lt~obsolete.m4 src/der.lo src/readcdf.lo config.status magic/Makefile src/dprintf.lo src/readelf.lo config.sub magic/Makefile.in src/encoding.lo src/seccomp.o config.sub~ magic/magic.mgc src/file.o src/softmagic.lo configure missing src/fmtcheck.lo src/strcasestr.lo depcomp python/Makefile src/fsmagic.lo src/strlcat.lo doc/Makefile python/Makefile.in src/funcs.lo src/strlcpy.lo doc/Makefile.in src/Makefile src/getline.lo stamp-h1 doc/file.1 src/Makefile.in src/gmtime_r.lo tests/Makefile doc/libmagic.3 src/apprentice.lo src/is_csv.lo tests/Makefile.in *** Commands *** 1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help What now> |
-i
はrm
などと違ってすごく高機能。
危険領域
-X
は.gitignoreで指定されているファイルを削除するので一番安全と思われる。-X
をつけないとgit status
で表示されるようなuntrackedなファイルも削除する。しかし前述のようにclean.requireForce
がfalse
でない限りは追加オプションが必要になるので危険性は弱くなっている。-f
だけで実行すると大事なファイルが削除されてしまう可能性が高い。しかし-d
をつけないとディレクトリは削除されないようになっている。-i
が高機能なので-f
は一切使わないほうがいいだろう。