Gitでファイルを削除する方法!git rmの使い方

git
\ Gitがよく分からない初心者の方へ /
さわっておぼえるGit入門
Gitがよく分からない初心者でも、
この1冊で基本操作を一通り理解できます。
👉 Amazonで詳しく見る
Kindle Unlimitedなら無料で読めます
▶ 無料で読む(Kindle Unlimited)

今回は、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の管理対象になりません。

削除したファイルを元に戻す方法

誤って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の設定で頻繁に利用するコマンドなので、この機会に覚えておきましょう。

コメント