git clean
新規に作成したファイルなど、一度もGitによって管理されたことのないファイルは
git clean -f
コマンドで削除できます。
# git上で管理されていないファイル/フォルダ $ git status On branch hoge Your branch is up to date with 'origin/hoge'. Untracked files: (use "git add <file>..." to include in what will be committed) test nothing added to commit but untracked files present (use "git add" to track) # Git管理外ファイル削除 $ git clean -f Removing test
-f
オプションを指定するのは、デフォルトではgit clean
をオプションなしで実行できないためです。
あまりお勧めはできませんが、.gitconfig
ファイルまたは.git/config
ファイルで以下のように設定すれば-f
オプション指定は不要になります。
(前者はglobal,後者はlocalなconfig設定ファイルです)
clean.requireForce=false
また、git clean -n
で削除されるファイル名を確認することができます。
$ git clean -n Would remove test
git clean -f
ではディレクトリを削除することができません。
ディレクトリを削除する場合は-d
オプションを指定します。
# ディレクトリが管理外 $ git status On branch hoge Your branch is up to date with 'origin/hoge'. Untracked files: (use "git add <file>..." to include in what will be committed) hoge/ nothing added to commit but untracked files present (use "git add" to track) # Git管理外ディレクトリを削除 $ git clean -d -f Removing hoge/
Gitで管理対象内ファイルの差分削除
ちなみに、既に管理されているファイルであればgit checkout ファイル名
でステージングされていない差分(git statusで赤色の部分)を削除できます
。
# カレントディレクトリ配下のすべての差分を削除
$ git checkout .
またステージングされている場合も、一旦git reset HEAD .
で差分をアンステージングすれば削除できます。
# カレントディレクトリ配下の、すでにステージングされている差分をアンステージング $ git reset HEAD . # カレントディレクトリ配下のすべての差分を削除 $ git checkout .
別の方法として、git stash
からのgit stash drop stash@{1}
でステージング・アンステージング関係なく差分を削除できます。
$ git stash $ git stash drop stash@{1}