今回は、Gitでファイルを削除する方法について解説します。
Gitを使っていて、ファイルを管理対象から外したい次のような場面があるのではないでしょうか。
- Git管理からファイルを外したい
- 不要になったファイルを削除したい
git rmの使い方が分からない- ファイル削除後にコミットする方法を知りたい
このような場合は、git rmコマンドを使うことで簡単に削除できます。
この記事では、Gitでファイルを削除する方法やgit rmの使い方、Git管理だけ解除する方法を解説します。
Gitでファイルを削除する方法
Gitでファイルを削除する場合は、git rmコマンドを使用します。
git rm ファイル名
例えば、sample.txtを削除する場合は下記です。
git rm sample.txt
実行すると、下記の2つの処理が同時に行われます。
- ファイルがローカルから削除される
- Gitの削除対象としてステージングされる
その後、コミットすることで削除内容が履歴に記録されます。
git commit -m "不要なファイルを削除"
※対象ファイルが削除されるので、気をつけて使いましょう。
git rmの動作を確認してみよう
例えば、プロジェクトに以下のファイルがあるとします。
project/
├── index.html
├── style.css
└── sample.txt
sample.txtを削除します。
git rm sample.txt
状態を確認してみましょう。
git status
実行結果
Changes to be committed:
deleted: sample.txt
削除予定としてステージングされていることが確認できます。
その後コミットします。
git commit -m "sample.txtを削除"
これでGitの履歴にも削除が反映されます。
ディレクトリを削除する方法
フォルダごと削除したい場合は、-rオプションを付けます。
git rm -r ディレクトリ名
例えば、imagesフォルダを削除する場合です。
git rm -r images
実行後はフォルダ内のファイルも含めて削除されます。
この後に、コミットすればOKです。
Git管理だけ解除する方法
「ファイルは残したいけどGit管理だけ外したい」という場合もあります。
例えば、
.env- 設定ファイル
- ローカル専用ファイル
などです。
この場合は--cachedオプションを使用します。
git rm --cached ファイル名
例
git rm --cached .env
実行すると、
- ローカルファイルは残る
- Gitの管理対象から外れる
という状態になります。
状態を確認すると、
git status
deleted: .env
のように表示されます。
その後コミットすることでGit管理対象から除外されます。
git commit -m ".envを管理対象から除外"
Git管理を解除した後は.gitignoreに追加しよう
git rm --cachedだけでは、再度ファイルが追加される可能性があります。
継続的に無視したい場合は.gitignoreへ追加しましょう。
.env
その後コミットします。
git add .gitignore
git commit -m ".envをgitignoreへ追加"
.gitignoreは管理対象外のファイルを記載するファイルです。
これで以後はGitの管理対象になりません。
.gitignoreについては、こちらも参考にしてみてください。
削除したファイルを元に戻す方法
誤ってgit rmで削除した場合は、コミット前であれば復元できます。
まず、削除のステージングを取り消します。
git restore --staged sample.txt
続いて、作業ツリーのファイルを復元します。
git restore sample.txt
これで削除前の状態に戻せます。
もしすでにコミットしている場合は、過去のコミットから復元する必要があります。

rmコマンドとの違い
LinuxやMacのrmコマンドでもファイルは削除できます。
rm sample.txt
ただし、この方法ではGit側は削除を認識していません。
そのため、後からステージングして、コミットする必要があります。
git add -u
今回のgit rmを使うと、削除してステージングまでやってくれるので簡単です。
git rm sample.txt
Gitで管理しているファイルを削除する場合は、基本的にgit rmを使用しましょう。
git rm -fで強制削除する方法
変更済みのファイルを削除しようとすると、次のようなエラーが表示される場合があります。
error: the following file has local modifications
この場合は、-fオプションを付けることで強制削除できます。
git rm -f sample.txt
ただし、未コミットの変更内容も削除されるため注意しましょう。
Gitでファイルを削除する方法まとめ
Gitでファイルを削除する場合はgit rmコマンドを使用しました。
git rm ファイル名
よく使うコマンドをまとめると以下になります。
| コマンド | 内容 |
|---|---|
git rm file.txt |
ファイルを削除 |
git rm -r dir |
ディレクトリを削除 |
git rm --cached file.txt |
Git管理だけ解除 |
git restore --staged file.txt |
削除のステージングを解除 |
git restore file.txt |
ファイルを復元 |
不要なファイルの整理や.gitignoreの設定で頻繁に利用するコマンドなので、この機会に覚えておきましょう。
コメント