ファイルを削除した場合も履歴として残したいときがある
そんな時は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 //詳細⑥参照
詳細⑥
コミットすべき変更がなくなっていることがわかる
コメント