• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

git clean

date: 2025-08-15 excerpt: git cleanコマンドの使い方

tag: gitgithub


git clean の使い方まとめ

概要

  • git cleanは「未追跡ファイル(untracked)や未追跡ディレクトリ」を削除するコマンド
  • コミット済みの変更やステージング済みの変更には影響しない(未追跡のみが対象)
  • 必ずドライラン(-n)で削除対象を確認してから実行する

ユースケース

  • ビルド成果物や生成ファイルを一括で掃除したい
  • 作業途中で増えた不要な未追跡ファイルをまとめて消したい
  • ブランチを切り替える前にワークツリーをきれいにしたい

基本コマンド

# 削除されるファイルを確認(実際には削除しない)
$ git clean -n

# 未追跡ファイルを削除(確認後に実行)
$ git clean -f

よく使うオプション

  • -n, –dry-run: 実際には削除せず、対象のみ表示(必ず最初に使う)
  • -f, –force: 実際に削除を実行(-nで確認後に使用)
  • -d: 未追跡ディレクトリも削除(デフォルトはファイルのみ)
  • -x: .gitignoreで無視されているファイルも含めて削除
  • -X: .gitignoreで無視されているファイルのみ削除(生成物の掃除に便利)
  • -i: 対話モードで個別に選択して削除

安全に使う手順

  • 1) まず状況確認
$ git status --short
  • 2) ドライランで対象確認
$ git clean -nd    # 未追跡のディレクトリも確認
  • 3) 問題なければ実行(用途に合わせてオプションを変える)
# 未追跡ファイル・ディレクトリを削除
$ git clean -fd

# 生成物(.gitignore対象)だけ掃除
$ git clean -fdX

# すべての未追跡(.gitignore無視分も含む)を掃除
$ git clean -fdx

よくある使い方の例

  • ビルド成果物をきれいにする
$ git clean -ndX   # 対象を確認
$ git clean -fdX    # 実行
  • 間違って作った未追跡のファイルやフォルダを丸ごと消す
$ git clean -nd    # 対象を確認
$ git clean -fd     # 実行
  • 対話的に選びたい
$ git clean -i

パス指定(pathspec)

  • 特定ディレクトリのみ対象にできる
$ git clean -nd -- build/ dist/
$ git clean -fd -- build/ dist/

resetやstashとの違い

  • git clean: 未追跡ファイルを削除
  • git reset –hard: 追跡ファイルの変更を破棄(未追跡は残る)
  • git stash -u: 変更と未追跡ファイルを一時退避(-uで未追跡も含む)

注意点

  • 一度削除すると復元は基本的に困難(履歴にないため)
  • .gitignoreで無視されているファイルを守りたい場合は-xを使わない
  • まず-nで確認、次に-fで実行を習慣化する


gitgithub Share Tweet