本記事では、Gitでファイルやディレクトリを削除することができる、git rmコマンドについて詳しく解説しています。
ITエンジニア特化の転職サイト!
自社内開発求人に強い【クラウドリンク】
Gitの学習におすすめ参考書
改訂2版 わかばちゃんと学ぶ Git使い方入門
git rmコマンドの使い方
git rmとは、ファイル・デイレクトリを削除することができるコマンドです。
一般的なファイル・ディレクトリの削除は手元にあるものを削除するだけですが、git rmコマンドでファイル・ディレクトリを削除する場合「ワークツリー(手元)」と「リポジトリ」の2つから削除します。
git rm ファイル名
git rm -r ディレクトリ名
実際にgit rmコマンドを使ってファイル削除する
実際にgit rmコマンドを使ってファイル削除していきましょう。
今回はindex.htmlがワークツリーとリポジトリにある状態で解説していきます。
ls
index.html style.css
「index.html」と「style.css」のファイルがあることが確認できます。
次にgit rmコマンドを使ってindex.htmlファイルを削除します。git rm index.html
これで、index.htmlワークツリーとリポジトリから削除されました。
本当に削除されたか確認していきましょう。
ls
style.css
削除前は「index.html」と「style.css」の2つありましたが、今回はstyle.cssのみ表示がされているのでワークツリーからindex.htmlが削除されたのが確認できます。
次にリポジトリからファイルが削除されているか確認するには「git status」コマンドを実行します。git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: index.html
git commit -m "delete index.html"
以上が、git rmコマンドの一連の流れになります。
git rmコマンドの便利なオプション
ワークツリー内のファイルだけ残す
Gitで管理しないファイルをリポジトリにアップしてしまった場合、通常のgit rmコマンドではワークツリーのファイルも削除されてしまうため使えません。
このようにリポジトリのみ削除して、ワークツリー内のファイルだけを残したい場合は「–cached」オプションを使いましょう。
git rm --cached pw.txt
ls
pw.txt
git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: pw.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
pw.txt
「Changes to be committed:」とは、リポジトリからpw.txtファイルが削除された記録がステージにある状態のことを指しており、「Untracked files:」は未追跡のファイルがあるワークツリー内にあることを指しています。
この未追跡のファイルとはpw.txtファイルのことでリポジトリからファイルが削除されているためGitではワークツリー内に新しいファイルがあるという認識になっています。
git commit -m "delete pw.txt"
リポジトリに反映させたくないものは、「.gitignore」ファイルに記述することで事前に防ぐことができます。