QA@IT

git でワーキングツリーにある untracked な未コミットファイルを一気に消すには?

6278 PV

git でワーキングツリーにある untracked な未コミットファイルを一気に消すには、どうすればいいでしょうか?

以下のようにMacの finder でフォルダを見て回ったら、不要な .DS_Store というファイルができていました。1つずつ消してもいいのですが、一気に消す方法はありますか?

$ git status
# On branch master   
# Untracked files:   
#   (use "git add <file>..." to include in what will be committed)
#
#       .DS_Store
#       app/assets/.DS_Store
#       vendor/.DS_Store
#       vendor/assets/.DS_Store
#       vendor/assets/images/.DS_Store
nothing added to commit but untracked files present (use "git add" to track)

回答

git clean -nd でドライランして、git clean -fd で削除するのはどうでしょうか。

編集 履歴 (0)
  • これでバッチリでした! ありがとうございます。 -

削除自体は解決されたようですが、.DS_Storeのような明らかに不要なファイルは:

$ git config core.excludesfile "~/.gitignore"

して、$HOME/.gitignore ファイルで.DS_Store を追加しておくと手間が減ると思います。お試しください。

$ man git-config
...
core.excludesfile

  In addition to .gitignore (per-directory) and .git/info/exclude, git looks into this file for patterns of files which are not meant to be tracked. "~/" is expanded to the value of $HOME and "~user/" to the specified user's home directory. See gitignore(5).
編集 履歴 (1)
  • プロジェクトごとにやるのは面倒だなぁと思いましたが、グローバルに指定できるんですね。そういえばそうでした。うまく設定できました。ありがとうございます。 -

スマートな方法ではないかもしれませんが、一度add -Acommitして、reset --hard HEAD~のようにして消しています。

編集 履歴 (0)
  • 意味的には分かりやすいですよね。ご回答、ありがとうございます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。