13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita Advent Calendar 2025
今年もこの季節がいよいよ始まりました :tada::tada::tada:
誰よりもこの日を待ちわびていたと自負しております。

2024年12月26日から首を長くして楽しみにしておりました。
:xmas-wreath1::santa::santa_tone1::santa_tone2::santa_tone3::santa_tone4::santa_tone5: :xmas-tree::xmas-wreath2:
:qiitan::qiitan::qiitan::qiitan::qiitan::qiitan::qiitan::qiitan::qiitan::qiitan::qiitan:

はじめに

CDKプロジェクトの検証中、「出発点の状態に戻したい」という要望を出したところ、Kiro CLI(旧Amazon Q Developer CLI)がgit clean -fdXという完璧なコマンドを提示してくれました。これが想像以上に便利だったので共有します。

ちなみに、Kiro CLI(旧Amazon Q Developer CLI)のモデル(/model)は、claude-sonnet-4.5 (active) | experimentalを使用しております。

状況

Lambda関数URLの認可モデル変更を検証するCDKプロジェクトを作成していました。

プロジェクト構成:

lambda-furl-auth-verification/
├── bin/
├── lib/
├── lambda/
├── package.json
├── node_modules/     # git管理対象外
├── cdk.out/          # git管理対象外
├── *.js              # git管理対象外
└── *.d.ts            # git管理対象外

検証のためにCDK 2.217.0 → 2.218.0+にアップグレードしましたが、検証後に出発点(CDK 2.217.0)の状態に戻したいという状況でした。

私の最初のアプローチ(失敗)

# package.jsonをgitで戻す
git checkout package.json

# でも...node_modulesとcdk.outが残ってる!
# 手動で削除?
rm -rf node_modules cdk.out
rm bin/*.js lib/*.js
rm bin/*.d.ts lib/*.d.ts

面倒くさい...しかも漏れがありそう。

Kiro CLI(旧Amazon Q Developer)の提案

「git管理対象外のファイルを削除します」

git clean -fdX

実行結果:

Removing bin/app.d.ts
Removing bin/app.js
Removing cdk.out/
Removing lib/lambda-furl-stack.d.ts
Removing lib/lambda-furl-stack.js
Removing node_modules/

完璧! .gitignoreで指定されたファイルが全て削除されました。

git clean -fdXとは

オプションの意味

  • -f: force(強制実行)
  • -d: ディレクトリも削除
  • -X: .gitignoreで指定されたファイルのみ削除

重要なポイント

大文字の-Xがポイントです:

オプション 削除対象
-x(小文字) git管理対象外のすべてのファイル
-X(大文字) .gitignoreで指定されたファイルのみ

小文字の-xだと、.gitignoreに書いていない未追跡ファイルも削除されてしまいます。

実際の使用例

CDKプロジェクトのクリーンアップ

# ビルド成果物とnode_modulesを削除
git clean -fdX

# 再インストール
npm install

# クリーンな状態でビルド
npx cdk synth

他の用途

Node.jsプロジェクト:

# node_modules, dist/, build/ などを一括削除
git clean -fdX

Pythonプロジェクト:

# __pycache__, *.pyc, .venv/ などを一括削除
git clean -fdX

Javaプロジェクト:

# target/, *.class などを一括削除
git clean -fdX

安全な使い方

1. ドライラン(削除前確認)

# 何が削除されるか確認
git clean -fdXn

# または
git clean -fdX --dry-run

2. 対話モード

# 1つずつ確認しながら削除
git clean -fdXi

3. 消したくない .env などがある場合

.gitignore に記載している .env やローカル設定ファイルも -X の対象になります。残したいファイルがあるときは除外オプションを併用します。

# .env は削除対象から外す
git clean -fdX -e .env

# 複数ある場合は繰り返し指定可能
git clean -fdX -e .env -e config/local.yaml

あるいは実行前に git clean -fdXn で一覧を確認して、消えて困るファイルがないか都度チェックすると安心です。

従来の方法との比較

従来の方法(手動削除)

rm -rf node_modules
rm -rf cdk.out
rm -rf dist
rm -rf build
find . -name "*.js" -type f -delete
find . -name "*.d.ts" -type f -delete

問題点:

  • ❌ 削除対象を全て覚えておく必要がある
  • ❌ プロジェクトごとに異なる
  • ❌ 削除漏れのリスク
  • ❌ 長いコマンド

git clean -fdX

git clean -fdX

メリット:

  • .gitignoreが削除対象のリスト
  • ✅ プロジェクト共通
  • ✅ 削除漏れなし
  • ✅ 短いコマンド

なぜこれが「好プレー」なのか

1. 知らなかったコマンドを教えてくれた

私はgit clean自体を知らなかったし、大文字の-Xオプションの存在を知りませんでした。Kiro CLI(旧Amazon Q Developer CLI)が的確に提案してくれました。

2. 状況に応じた最適解

「出発点に戻したい」という曖昧な要望に対して、以下を理解した上で提案してくれました:

  • git管理対象のファイルは残す
  • .gitignoreで指定されたファイルのみ削除
  • 未追跡ファイル(新規作成したソースコード等)は残す

3. 説明なしでも安心して実行できた

コマンドの意図が明確で、ドライランで確認もできるため、安心して実行できました。

Kiro CLI(旧Amazon Q Developer CLI)との対話の流れ

: 「git管理対象外は残していてもごみなので消しておいてくれ」

Amazon Q Developer:

git clean -fdX

実行結果:

Removing bin/app.d.ts
Removing bin/app.js
Removing cdk.out/
Removing lib/lambda-furl-stack.d.ts
Removing lib/lambda-furl-stack.js
Removing node_modules/

: 「へー、git clean -fdX とかしらなかった。新しい発見だ。ありがとう。」

シンプルですが、これが理想的なAIとの協働だと思います。

まとめ

学んだこと

  1. git clean -fdX.gitignore指定ファイルを一括削除
  2. ✅ 大文字-Xと小文字-xの違いが重要
  3. -nオプションでドライラン可能
  4. ✅ CDKプロジェクトのクリーンアップに最適

Kiro CLI(旧Amazon Q Developer CLI)の「好プレー」ポイント

  • 🎯 状況を正確に理解
  • 🎯 最適なコマンドを提案
  • 🎯 新しい知識を提供
  • 🎯 安全に実行できる方法

今後の活用

このコマンドは以下のような場面で活用できます:

  • CDKプロジェクトのバージョン切り替え
  • Node.jsプロジェクトの依存関係リセット
  • ビルド成果物の完全削除
  • CI/CDパイプラインのクリーンアップ

おわりに

Kiro CLI(旧Amazon Q Developer CLI)との対話の中で、知らなかったGitコマンドを学ぶことができました。これは単なる「コード生成AI」ではなく、開発パートナーとしての価値を示す好例だと思います。

私のAIは一味違う。Antonio InokiさんのほうのAIです。世界一強いタッグパートナーです。

皆さんもgit clean -fdX、ぜひ使ってみてください!🔥


検証環境:

  • Git: 2.x
  • プロジェクト: AWS CDK TypeScript
  • AI: Kiro CLI(旧Amazon Q Developer CLI)

参考リンク:

13
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?