ファイルを削除するrm(リムーブ)コマンドの使い方と種類

GitHub

ファイルを削除した場合も履歴として残したいときがある

そんな時はgit addではなく別のコマンドを使用する



ファイルを削除して記録するコマンドの種類

ファイルを削除するコマンドの種類と使い方について解説

ワークツリーとローカルリポジトリの記録から削除する

git rm ファイル名

git rm index.html


git rm -r ディレクトリ名

git rm -r dir
ワークツリーのみ残す

ローカルリポジトリからは削除したいけどワークツリーにあるファイルは残したいというときには–cachedオプションを使う

git rm –cached ファイル名

git rm --cached index.html

git rmコマンドを使ってみる

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ ls
index.html  style.css

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git status
On branch main
nothing to commit, working tree clean

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git rm index.html
rm 'index.html'  //ファイルが削除された

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ ls
style.css  //index.htmlは削除されている

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    index.html  //詳細①参照

コードの見方
黄・・・入力したコマンド
青・・・ログインユーザー
紫・・・コメント
その他・・・コマンドのレスポンス

詳細①
リポジトリに記録されていたindex.htmlが削除されて、その変更状態がステージに記録されている

git rmで間違えて削除した場合の対処方法
pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git reset HEAD index.html
Unstaged changes after reset:
D       index.html

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git checkout index.html
Updated 1 path from the index

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ ls
index.html  style.css //ファイルが復活している

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git status
On branch main
nothing to commit, working tree clean //詳細②参照

詳細②
コミットすべき変更がないということですべて元通りに

git rm –cachedコマンドを使ってみる

使用例としてはパスワードの記載してあるファイルを誤ってgitの記録に乗せてしまったなどの時に使用する

git rm –cachedで行われていること
リポジトリのみ削除をしている

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ ls
index.html  style.css

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git rm --cached index.html 
rm 'index.html'  

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ ls
index.html  style.css  //詳細③参照

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    index.html //詳細④参照

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        index.html  //詳細⑤参照

詳細③
lsコマンドでファイルを確認するとワークツリーから削除されていないのがわかる

詳細④
コミットすべき変更にはindex.htmlでは削除されていると表示されている
リポジトリからは削除されてその変更状態がステージに追加されていることがわかる

詳細⑤
リポジトリからは削除されているのでindex.htmlというリポジトリには存在しない新規ファイルがあると表示されている

git rm –cachedで間違えて削除した場合の対処方法
pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git reset HEAD index.html

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ ls
index.html  style.css

pc@DESKTOP-55DKD3D MINGW64 ~/Desktop/git (main)
$ git status
On branch main
nothing to commit, working tree clean  //詳細⑥参照


詳細⑥
コミットすべき変更がなくなっていることがわかる

コメント

タイトルとURLをコピーしました