1. ホーム
  2. git

[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法

2022-03-13 15:08:46

質問

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

解決方法は?

<ブロッククオート

ギットクリーン - 作業ツリーから未追跡のファイルを削除する

あらすじ

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 を設定する必要があります。 -f でないと、実際には何も起こらない。

もう一度 git-clean のドキュメントを参照してください。


<ブロッククオート

オプション

-f , --force

Gitの設定変数clean.requireForceが false が指定されない限り、git clean は実行を拒否します。 -f , -n または -i .

-x

.gitignoreから読み込んだ標準的な無視ルールを使わないでください。 ディレクトリ)と $GIT_DIR/info/exclude を使用しますが、無視する で指定されたルールは -e オプションで指定します。これにより、追跡されていないすべてのファイルを削除することができます。 ビルドプロダクトを含む。これは(場合によっては をテストするために、原始的な作業ディレクトリを作成するために、git resetと一緒に使用します。 を構築します。

-X

Git が無視するファイルのみを削除します。これは をすべて一から作り直しますが、手動で作成したファイルは残します。

-n , --dry-run

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

-d

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