本記事では、Gitでファイルやディレクトリを削除することができる、git rmコマンドについて詳しく解説しています。
- 漫画形式で読みやすく理解しやすい
- GitHubを使った実践的な内容も分かりやすい
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
git rmコマンドの使い方
git rmとは、ファイル・デイレクトリを削除することができるコマンドです。
一般的なファイル・ディレクトリの削除は手元にあるものを削除するだけですが、git rmコマンドでファイル・ディレクトリを削除する場合「ワークツリー(手元)」と「リポジトリ」の2つから削除します。
まず始めにファイル削除のコマンドは以下の通りです。
git rm ファイル名
次にディレクトリ削除のコマンドは以下の通りです。
git rm -r ディレクトリ名
実際にgit rmコマンドを使ってファイル削除する
実際にgit rmコマンドを使ってファイル削除していきましょう。今回はindex.htmlがワークツリーとリポジトリにある状態で解説していきます。
まずは、lsコマンドを使って何のファイルがあるか確認します。
ls
index.html style.css
「index.html」と「style.css」のファイルがあることが確認できます。
次にgit rmコマンドを使ってindex.htmlファイルを削除します。
git rm index.html
これで、index.htmlワークツリーとリポジトリから削除されました。本当に削除されたか確認していきましょう。
まずはワークツリーから削除されたか確認するには、先程と同様に「ls」コマンドを実行します。
ls
style.css
削除前は「index.html」と「style.css」の2つありましたが、今回はstyle.cssのみ表示がされているのでワークツリーからindex.htmlが削除されたのが確認できます。
次にリポジトリからファイルが削除されているか確認するには「git status」コマンドを実行します。
git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: index.html
最後にステージに記録されているファイル削除を「git commit」コマンドを使ってコミットします。
git commit -m "delete index.html"
以上が、git rmコマンドの一連の流れになります。
git rmコマンドの便利なオプション
ワークツリー内のファイルだけ残す
Gitで管理しないファイルをリポジトリにアップしてしまった場合、通常のgit rmコマンドではワークツリーのファイルも削除されてしまうため使えません。
このようにリポジトリのみ削除して、ワークツリー内のファイルだけを残したい場合は「–cached」オプションを使いましょう。
今回は、パスワードが記載されている「pw.txt」ファイルを間違えてリポジトリにアップしてしまった場合で解説します。
git rm --cached pw.txt
「ls」コマンドでワークツリーにpw.txtファイルが残っている確認します。
ls
pw.txt
次にリポジトリの状態を「git status」コマンドで確認します。
git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: pw.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
pw.txt
「Changes to be committed:」とは、リポジトリからpw.txtファイルが削除された記録がステージにある状態のことを指しており、「Untracked files:」は未追跡のファイルがあるワークツリー内にあることを指しています。
この未追跡のファイルとはpw.txtファイルのことでリポジトリからファイルが削除されているためGitではワークツリー内に新しいファイルがあるという認識になっています。
最後にステージに記録されているものをコミットして完了です。
git commit -m "delete pw.txt"
リポジトリに反映させたくないものは、「.gitignore」ファイルに記述することで事前に防ぐことができます。