git

git clean: untracked filesを削除する

How to use git command 17/N

公開日: 2021-05-17
更新日: 2024-04-24

  Table of Contents

git cleanとは?

  • git cleanコマンドは作業ツリー(working tree)からトラッキングされていないファイルを削除するコマンド
  • バージョン管理されていないすべてのファイルを現在のディレクトリから下位のディレクトリ構造にまで削除
  • untrackedのディレクトリは,-d オプションを指定しない限り,そのまま残される
  • .gitignoreファイルでこれらのファイルが指定されてファイルは削除されない

options

options 説明
-x (gitginoreの対象になる)ignored filesも削除する
-X (gitginoreの対象になる)ignored filesだけを削除する
-d untracked directoryも削除する
--dry-run, -n ドライラン
-e, --exclude <pattern> 指定した<pattern>git cleanの対象外にする


警告 !絶対–dry-runを最初に行うこと

  • git cleanコマンドは修復不可能な結果をもたらします
  • 実施前にはgit clean -ngit clean --drey-runを実行してどのファイルが削除されるか事前にチェックすること

-eオプションと正規表現

git trackされたレポジトリ構成が以下のようになっているとします.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.
├── .gitignore
├── 00.txt
├── 01.txt
├── 02.txt
├── 03.txt
├── 04.txt
├── 05.txt
├── 06.txt
├── 07.txt
├── 08.txt
├── 09.txt
├── 10.txt
└── README.md

このとき,README.md以外はまだuntracked filesの状態であるとします.

-eオプションはダブルクォートで囲むと,除外対象を簡易的な正規表現を用いて指定することができます.

1
2
3
4
5
6
% git clean -n -e "*gitignore" -e "0[0-5].txt"
Would remove 06.txt
Would remove 07.txt
Would remove 08.txt
Would remove 09.txt
Would remove 10.txt

Tips

  • *: ワイルドカード
  • [0-9]: 0~9までの数字,[A-Z]のように応用可能
  • \d\wなどの数字クラスは用いることができない

References



Share Buttons
Share on:

Feature Tags
Leave a Comment
(注意:GitHub Accountが必要となります)