git rm – ファイルをリポジトリから削除するコマンド

リポジトリ管理 生成・削除

git rm は、指定したファイルを ステージングエリアと作業ツリーから削除 するコマンドです。
次のコミットでファイル削除を記録したいときや、追跡だけをやめたいとき(--cached)に利用します。

構文(Syntax)

git rm [オプション] <パス>...

主なオプション一覧

オプション説明使用例
<パス>指定ファイル/パスを削除(ステージにも反映)git rm config.yml
-rディレクトリを再帰的に削除git rm -r dist/
-f, --force変更済み/ステージ済みでも強制削除git rm -f data.csv
--cached追跡のみ解除(作業ツリーのファイルは残す)git rm --cached .env
-n, --dry-run実際には削除せず、対象のみ表示git rm -n *.log
-q, --quietメッセージを抑制git rm -q temp.txt
--ignore-unmatch該当なしでもエラーにしないgit rm --ignore-unmatch notfound.txt

実行例

単一ファイルを削除して次コミットに反映

git rm README.md
git commit -m "Remove README"

ディレクトリを再帰的に削除

git rm -r build/
git commit -m "Remove build artifacts"

作業ツリーには残し、追跡だけをやめる(.gitignore と併用)

git rm --cached .env
echo ".env" >> .gitignore
git commit -m "Stop tracking .env"

削除対象を事前確認(ドライラン)

git rm -n *.log

出力例:

rm 'app.log'
rm 'server.log'

エラー例(未保存の変更があるファイルを通常削除)

git rm report.docx

出力例:

error: the following file has local modifications:
    report.docx
(use --cached to keep the file, or -f to force removal)

関連コマンド

  • git restore --staged <path> : ステージから削除変更を取り消す。
  • git reset <path> : ステージから外す(旧来の方法)。
  • git add : 変更の追加(削除も「削除として」ステージされる)。

備考

  • git rm削除をステージ する操作です。履歴に反映するにはコミットが必要です。
  • 未コミットの変更があるファイルは、通常は削除を拒否されます。どうしても削除する場合は -f を使用します。
  • --cached は「追跡解除」用途で便利(大きなファイルを誤って追加した・シークレットを除外したい等)。必要なら .gitignore にも追加しましょう。
  • グロブ(*.log など)のパス指定はシェルに解釈されるため、意図しない展開に注意してください。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント