Git リポジトリのルートディレクトリにあるファイルで、git add で追加されていないものはすべて追跡されていません。追跡されていないファイルをディレクトリに散らかしたくない場合は、git clean コマンドで削除することができます。git clean は追跡されていないファイルを永久に削除するので、まず git status を使ってどのファイルが削除されるのかを確認しましょう。間違ったファイルを削除してしまうのが心配なら、対話モードで git clean を使えば簡単なプロンプトで追跡されていないファイルを削除することができます。この wikiHow の記事では、git clean コマンドを使って Git で追跡されていないファイルを安全に削除する方法を説明します。
知っておくべきこと
- 削除する前に "git status" を実行し、すべての未トラッキングファイルを確認しましょう。
- すべての未追跡ファイルを削除するには "git clean -f" コマンドを実行します。
- git clean -i" を実行すると、git clean を対話モードで起動することができます。
すべての未追跡ファイルを削除する
-
リポジトリのルートディレクトリに移動します。ターミナル ( & Mac ) あるいは PowerShell ウィンドウを開き、cd コマンドでリポジトリのプライマリディレクトリに移動します。
-
git status コマンドを実行します。ファイルだけでなくトラックされていないディレクトリも表示したい場合は、代わりに git status --untracked-files=all を使用します。
- git clean による追跡されていないファイルの削除は永続的なものです。必要かもしれない未追跡のファイルを失わないようにするには、必ず最初にバックアップを取っておきましょう。
-
最初に「ドライラン」を行ってください (オプション)。すべての追跡されていないファイルを完全に削除する前に、git clean -n コマンドを実行して実際にファイルを削除せずに git clean が何を削除するのかを確認しましょう。これにより、追跡されていないファイルをもう一度見直して、残しておきたいものがないことを確認することができます。
- git status を実行したときに追跡されていないディレクトリがあった場合は、git clean -n -d コマンドを使用してシミュレーションにそれらのディレクトリが含まれていることを確認しましょう。
-
git clean -f を実行すると、追跡されていないファイルを完全に削除することができます。これで、現在のディレクトリにあるすべての追跡されていないファイルが削除されます。
- 追跡されていないファイルも削除したい場合は、代わりに git clean -f -d を使ってください。
- また、--exclude を使うと、特定のファイルやパターンを削除対象から除外することができます。たとえば、"help" という単語を含むファイル名以外を削除したい場合は、git clean -f -d -e *help* とします。
-
もう一度 git status を実行すると、追跡されていないファイルが表示されます。以前表示されていた追跡されていないファイルが削除されていることがわかるでしょう。
対話モードを使う
-
git clean の対話モードを使うには git clean -i を実行します。このコマンドを実行すると、カレントディレクトリにあるすべての未追跡ファイルの一覧が、番号つきのプロンプトとともに表示されます。
- 対話型モードを使うと、より安全に git clean を使うことができます。すべての追跡されていないファイルを一度に強制的に削除するのではなく、対話型プロンプトでファイルを選択し、個別に削除することができます。
- 対話型モードを開始すると、それぞれに番号が振られたオプションのリストが表示されます。
-
追跡されていないファイルをひとつずつ削除するには、4 (ask each) を押してください。4 はインタラクティブメニューの最初のオプションではありませんが、追跡されていないファイルを削除する安全な方法なので、これは出発点として最適です。このオプションでは、追跡されていないファイルの名前が個別に表示され、それを保持するか削除するかを選択できます。
- 最初の未追跡ファイルが表示されたら、永久に削除する場合はyを、残す場合はnを押してください。
- 決定すると、次の未追跡ファイルが表示されます。すべてのファイルを確認し、マークを付けるまで、各ファイルに対して、削除する場合はy、残す場合はnを入力します。
- リストの最後に達すると、削除マークを付けた未追跡ファイルは永久に削除されます。
-
1 (Clean) を押すと、すべての未追跡ファイルが強制的に削除されます。で説明したように、このメニューの最初のオプションは git clean -f を実行して強制的に削除するのと同じです。
- このオプションは、他のメニューオプションを使った選択が終わるまで使わないほうがよいでしょう。
-
2 (filter by pattern) を押すと、特定のファイルを除外することができます。これにより、"Input ignore patterns" プロンプトが表示され、ファイル名、拡張子、またはワイルドカードを入力することで、特定の未追跡ファイルを削除から除外することができます。
- たとえば、.c で終わるファイル以外のすべての未追跡ファイルを削除する場合は、 *.c と入力して Enter または Return キーを押します。すると、.c で終わるファイルを除く、すべての未追跡ファイルのリストが表示されます。
- その後、無視する別のパラメータやファイル名を追加するか、Enter または Return を押してメニューに戻ることができる。
- メイン・メニューでは、インタラクティブ・モードが除外を記憶している。ここで 1 を押すと、除外条件に一致するファイル以外のすべての未追跡ファイルをクリーンアップ(削除)することができ、4 を押すと、ファイルを 1 つずつ削除することができる。
-
番号でファイルを選択するには、3を押します。このオプションでは、対応する番号を持つ追跡されていないファイルのリストを表示し、削除したいファイルのみを選択することができます。
- 削除するアイテムの選択] プロンプトで、削除するファイルに対応する番号を押します。カンマで区切ったり、範囲を追加したりすることで、複数の番号を入力できます。
- たとえば、ファイル2、5~8、10を削除する場合は、2、5~8、10と入力し、EnterまたはReturnを押します。
- もう一度EnterかReturnを押すと、対話型メニューに戻る。未追跡ファイルのリストに、選択したファイルだけが表示されます。
- 選択したファイルをすべて削除するには、1を押します。1つずつ削除するには、4を押します。
-
終了するにはqを押します。対話型モードが終わったら、このオプションを使う。
コメント
最新を表示する
NG表示方式
NGID一覧