git cleanでUntracked files(未追跡ファイル)をまとめて削除

スポンサーリンク

git cleanコマンドで、gitで未追跡のファイル(Untracked files)を一発でまとめて削除する方法です。rm コマンドで1つずつ消すのが面倒くさい場合に利用できます。Rails で generate コマンドでコントローラーのファイル群を生成して、利用するファイルだけを残して、使わないファイルをまとめて git clean で削除してみます。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

未追跡のファイル(Untracked files)の確認

まずは、テスト用のコントローラーを生成します。Rails アプリケーションでの例です。

未追跡のファイル(Untracked files)を確認してみます。

これらの Untracked files を git clean コマンドでまとめて削除します。

-n オプションで削除対象を前もって確認

削除されるファイル・ディレクトリを前もって確認するには、n オプションを使います。n オプションを付けると、削除対象が一覧表示されるだけで、実際には削除されません。

以下の例「git clean -df -n」コマンドで、削除されるファイルを前もって確認してみます。d オプションは未追跡ディレクトリを削除対象にする、f オプションは未追跡ファイルを削除対象にする意味です。

git clean を実行する場合は、必ず事前にこの -n オプションを使って削除対象の一覧を確認するようにしたほうが良いです。理由は以下。

git cleanで.gitignore対象のファイルが消えてしまう話 | dreamin’ blog

以前、自分もリンク先の記事と全く同じ経験をしたことがあります。.gitignore の対象にしていた vendor/bundle 中の gem まで「git clean」で削除してしまい、bundle install をやり直すはめになってしまいました。この対策には vendor/.keep 等をコミットしておくと良いのですが、それがない可能性もありますので。

-e オプション指定で削除対象から除外

-e オプションで指定したフィアルやディレクトリは、git clean による削除対象から除外(exclude)されます。コントローラーのファイル(app/controllers/page_controller.rb)とビューのディレクトリ(app/views/page/)は削除したくない場合、以下のようにする。

git clean で未追跡ファイルの削除を実行

n オプションで確認した後、未追跡ファイルの削除を実行します。今度は n オプションを外してコマンド実行。

これで…

app/controllers/page_controller.rb
app/views/page/

以外の Untracked files をまとめて削除することができました。

git clean -fdx

git clean -fdx で、git で未追跡のディレクトリ・ファイル、および .gitignore に記載された git で無視されるファイル・ディレクトリが削除されます。

Railsで生成したくないファイルはconfigに追加

なお補足ですが、rails generate コマンドで毎回生成したくないファイルは、config/application.rb の config.generators ブロックで指定しておくと楽です。

config/application.rb

これで assets と helper のファイルは生成されなくなります。

以上 git clean コマンドの使い方でした。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!