やりたいこと
Git管理しているディレクトリの特定ブランチ内のファイル/ディレクトリをすべて削除したい。
前提として以下の条件があるとする。
- ブランチは残す
- 空ディレクトリも残さず削除する
方法1 rm -rf *
rm -rf *
カレントディレクトリ以下のファイル/ディレクトリ共に削除できるが、 .git/
も削除されてしまうので、gitによる管理ができなくなってしまう。
方法2 git rm -r .
git rm -r .
gitのサブコマンドを使用する方法。.git/
は残しつつ、カレントディレクトリ配下のファイルをすべて削除できるが、空のディレクトリが残ってしまう。
方法3 ls -A | grep -e -V '.git' | xargs rm -rf
ls -A | grep -e -V '.git' | xargs rm -rf
.git/
は残しつつ、ファイルも空ディレクトリも綺麗さっぱり削除できる。
-e
オプションは、引数で指定した文字列を検索する。今回の場合は ".git" に一致するファイル/ディレクトリが該当する。
-v
オプションは、結果を反転させる。つまり ".git"
を除いた結果が得られる。
結果として、ls -A
の結果から ".git" を除いたものが rm
コマンドに渡され、.git以外のすべてのファイル/ディレクトリを削除できる。
参考
参考にさせていただきました。
ありがとうございます🙇♂️