背景
Git管理されているソースコードで開発をしているとします。
その過程で未コミットな新規(untrackedな)ディレクトリやファイルを削除したい時に、コマンド1発でそれを消す方法を恥ずかしながら最近知ったので、初心者向けに記録しておこうと思い筆を取りました。
状況
ディレクトリ構成
$ tree
.
├── committed.txt
└── uncommitted.txt
上記のようなGit管理されているソースがあり、ファイル名のとおりのcommit状況だったとするとgit statusを実行すると
git status
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
uncommitted.txt
nothing added to commit but untracked files present (use "git add" to track)
となります。
このようなシンプルな状況ではrm
コマンドを叩けば良いですが、複数ディレクトリにuntrackedなファイルが散らばっているときは非常に面倒です。
解決策
Gitのclean
コマンドを使うとuntrackedなファイルを削除することができます。
.
の箇所でパスをしています。
git clean
$ git clean -f .
Removing uncommitted.txt
$ git status
On branch master
nothing to commit, working tree clean
ちなみに-n
をつけるとドライランとなり、消されるファイルを事前に確認することができます。
git clean dry run
$ git clean -nf .
Would remove uncommitted.txt
まとめ
Git管理されているソースから不要な新規ファイルを消したい場合は下記の要領でGitのcleanコマンドを使うと1発で消すことができます。
git clean -f .
参考