👏

git rm --cached ファイルをリモートリポジトリのみ削除する

2021/11/08に公開
2

概要

ローカルリポジトリのファイルは残してリモートリポジトリのファイルのみを消したいときがあります。
そんなときには、自分は以下の手順で削除しています。

  1. git rm --cached 削除したいファイル
  2. 変更を push
  3. .gitignoreにファイルを追加して Git の追跡から外す

コマンドの意味

コマンド 意味
rm 通常の unix コマンド
git rm Git コマンドオプションの 1 つ。ファイルの履歴(index)ごと消す。working tree のファイルも削除される
git rm --cached ファイルの履歴(index)のみ削除する。working tree のファイルは残る

Discussion

flyingbarbarianflyingbarbarian

rmは、ファイルやディレクトリを削除するためのunixのコマンドです。

https://linuxjm.osdn.jp/html/GNU_fileutils/man1/rm.1.html

git rmは、gitのworking treeとindexからファイルを削除するコマンドです。

https://git-scm.com/docs/git-rm

git rm --cachedはgitのindexからファイルを削除し、working treeには影響を与えないコマンドです。

https://git-scm.com/docs/git-rm#Documentation/git-rm.txt---cached

全てローカルリポジトリのみで完結した話で、リモートリポジトリは関係ありません。

indexとかworking treeはこんな感じのものです。

https://backlog.com/ja/git-tutorial/intro/04/

上記を参考に記事の修正を検討してみて下さい。
エンジニア同士、今後も勉強もアウトプットも頑張っていきましょう!!

mskmsk

コメントのほどありがとうございます!

git rm --cachedはgitのindexからファイルを削除し、working treeには影響を与えないコマンドです。
全てローカルリポジトリのみで完結した話で、リモートリポジトリは関係ありません。
はい、自分もその認識でした。
なので、

  1. git rm --cached を実行
  2. 変更をpush
  3. .gitignoreにファイル名を追加
    でリモートブランチからファイルを削除して、ローカルに残すことを想定していました。
    しかし、この文章のままだとわかりづらいので、修正しました。
    アドバイスのほどありがとうございました。