現在の Git 作業ツリーからローカル (追跡されていない) ファイルを削除するにはどうすればよいですか? 質問する

現在の Git 作業ツリーからローカル (追跡されていない) ファイルを削除するにはどうすればよいですか? 質問する

現在の作業ツリーから追跡されていないローカル ファイルを削除するにはどうすればよいですか?

ベストアンサー1

git クリーン- 作業ツリーから追跡されていないファイルを削除する

概要

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

説明

現在のディレクトリから始めて、バージョン管理下にないファイルを再帰的に削除して作業ツリーをクリーンアップします

通常、Git に不明なファイルのみが削除されますが、-xオプションが指定されている場合は、無視されるファイルも削除されます。これは、たとえば、すべてのビルド製品を削除する場合に役立ちます。

オプションの<path>...引数が指定されている場合は、それらのパスのみが影響を受けます。


ステップ 1 では、オプションを使用して何が削除されるかを表示します-n

# Print out the list of files and directories which will be removed (dry run)
git clean -n -d

クリーンアップ手順 -注意: これによりファイルが削除されます:

# Delete the files from the repository
git clean -f
  • ディレクトリを削除するには、git clean -f -dまたはgit clean -fd
  • 無視されたファイルを削除するには、git clean -f -Xまたはgit clean -fX
  • 無視されたファイルと無視されないファイルを削除するには、git clean -f -xまたはgit clean -fx

X後者の 2 つのコマンドの大文字と小文字の違いに注意してください。

clean.requireForce構成で「true」(デフォルト)に設定されている場合、指定する必要があります-f。そうしないと、実際には何も起こりません。

もう一度見てくださいgit-clean詳細についてはドキュメントを参照してください。


オプション

-f--force

Git 構成変数 clean.requireForce が false に設定されていない場合、 、または が指定されない限り-f、 git clean は実行を拒否します-n-i

-x

.gitignore (ディレクトリごと) および から読み取られる標準の無視ルールは使用しませんが$GIT_DIR/info/exclude、オプションで指定された無視ルールは引き続き使用します-e。これにより、ビルド製品を含む追跡されていないすべてのファイルを削除できます。これを使用して (おそらく git reset と組み合わせて)、クリーンなビルドをテストするための純粋な作業ディレクトリを作成できます。

-X

Git によって無視されるファイルのみを削除します。これは、すべてを最初から再構築し、手動で作成されたファイルを保持する場合に便利です。

-n--dry-run

実際に何かを削除するのではなく、何が行われるかを示すだけです。

-d

追跡されていないファイルに加えて、追跡されていないディレクトリも削除します。追跡されていないディレクトリが別の Git リポジトリによって管理されている場合、デフォルトでは削除されません。-fそのようなディレクトリを本当に削除したい場合は、オプションを 2 回使用します。

おすすめ記事