Git:追跡されていないファイルをすべて削除する方法は?


40

バージョン管理にGitを使用しています。次に、ローカルマシンで、リポジトリ内の追跡されていないすべてのファイルを削除します。

使うことができます

git status

これらのファイルをリストしますが、それらをすべて削除するにはどうすればよいですか?


1
すべてのファイルをマシンの別の場所にチェックアウトしてから、古いバージョンを削除することはできませんか?
ニフレ

1
確かにできますが、もっと簡単な方法はありませんか?
RoflcoptrException

回答:


55

無視する場合は、を使用しますgit clean -xf。できますgit clean -dfが、追跡されていないディレクトリも削除されます。ドライランに使用-nします。

未追跡のクリーンアップをご覧ください


3
-xは無視を無視し...
UpAndAdam

8
-xf無視されたファイルを削除、これはおそらくあなたが望むものではありません。使用-nfして、注意して進めてください。参照:stackoverflow.com/questions/61212/...
Mr_and_Mrs_D

2
これは、ご使用の環境/ IDEフォルダを削除することができ、覚えておいてください(例えば.vagrantまたは.idea(phpstorm))
timhc22

1
気を付けて!無視されたファイルは永久に消去されます。-100
9

5
git clean -f

8
この答えを自己完結させるために、そのコマンドの意味を追加することは理にかなっているかもしれません。
NN

5

ユーザーインタラクティブなアプローチ:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y

-iは対話型
-fはファイル用
-dはディレクトリ用

注: -nまたは--dry-run追加して、動作を確認します。


3

git clean -f追跡されていないファイルやディレクトリに対して言及する価値がある微妙な点があります。追跡されていないファイルが含まれる追跡されていないディレクトリがある場合、追跡されていないファイルはgit clean -f削除されません。

言い換えると、git clean -f追跡されていないファイルをすべて削除するのは常にそうではありません。より良い説明git clean -fは、追跡されてないディレクトリにない追跡されてないファイルをすべて削除することです。

git clean -f -d しなければならない人跡未踏のディレクトリにあり、すべての人跡未踏のファイルを削除する方法はないようである人跡未踏のファイルを削除するために使用されなくても、唯一の人跡未踏のファイルが含まれている人跡未踏のディレクトリを削除します。

git clean -f -d -n作業ディレクトリを未追跡ファイルなしの状態に復元するために何をしたいのかを本当に確認するために使用します。その後、それを使用git clean -f -dしてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.