【Git初心者入門】いちいちステージングエリアにaddしなくても削除できるgit rm

スポンサーリンク

はじめに

クマくん
クマくん

サメさん!gitの操作方法をもっと教えてよ!

さめさん
さめさん

git使うことに慣れてきて自信が付いてきたようだね!

よし、それじゃあ今日はgit rmコマンドについて説明しよう!

クマくん
クマくん

git rm?

なんかLinuxでもありそうなコマンドだね。

さめさん
さめさん

お、鋭いね。

今回はgit rmコマンドがgitにおいてどういう挙動をするかを確認しながら理解していこう!

git rmコマンドのポイント

git rmコマンドのポイント
  • ファイルを削除したい時に使う
  • ファイルの削除がステージングエリアに反映される。
  • rmコマンドと違い、ステージングエリアに反映させるのでそのままgit commitできる。
まずはgit rmコマンドの動きを理解しよう。
クマくん
クマくん

違いはステージングエリアに最初から反映されているかどうかってことかな?

さめさん
さめさん

その通り!

まぁrmコマンドをしてgit add, git commitの流れでできるんだけど、git rmコマンドを使うことでgit addの処理を短縮できるんだ

さめさん
さめさん

せっかくだから流れを見ていこう!

git rmコマンドの動きの確認

前提

さめさん
さめさん

まず、今僕のディレクトリ構造について説明するね。

sampleディレクトリにa, b, cのファイルが存在する形だよ。

クマくん
クマくん

ふむふむ!

僕も作ってみるね!

$mkdir ~/sample
$cd ~/sample
$touch a b c
$git init
$git add .
$git commit -m "first commit"
$pwd 
~/sample
$ ls 
a b c
さめさん
さめさん

バッチリgit 使いこなしているね!。

rmコマンドで削除する。

さめさん
さめさん

まずはrmコマンドでaというファイルを削除する。。

$pwd 
~/sample
$ rm a
さめさん
さめさん

その次にgit statusコマンドで差分を確認しよう。

$git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	deleted:    a

no changes added to commit (use "git add" and/or "git commit -a")
クマくん
クマくん

できたよ!

git addかもしくはgit commit -aしてね

って言われているね。

さめさん
さめさん

その通りだね!

つまりこれはどういうことか説明できる?

クマくん
クマくん

うーん。

Change not staged for commit

って書いてあるからステージングエリアにいないってことかな?

さめさん
さめさん

素晴らしい!まさにその通りだよ!

だから削除を反映させるためにはgit addでステージングエリアに登録しなきゃいけないんだ。

$git add .
$git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    a
クマくん
クマくん

おおお!

これでChanges to be committed

ってなったからcommitできるようになったんだね!

さめさん
さめさん

あとはcommitして完了だよ。。

$git commit -m "Remove a file"

git rmコマンドでファイルを削除する。

さめさん
さめさん

今度はgit rmコマンドでファイルを削除してみよう。

$git rm b
$git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    b
クマくん
クマくん

おおお!

確かに最初からChanges to be committed

になっているからステージングエリアに登録されているんだね!

さめさん
さめさん

その通り!

だからこのままgit commitで変更を反映させることができるんだ。

$git commit -m "Remove b file"

終わりに

クマくん
クマくん

サメさんありがとう!

新しいgit rmコマンドを使えるようになったよ!

さめさん
さめさん

よかった!gitリポジトリがある状態でファイルを削除するときは積極的にgit rmコマンドを使うといいよ!

さめさん
さめさん

まぁ、色々変更点が多くてgit addするの忘れていたり、時間がなかったりしたらステージングエリアに登録されていないファイルがたくさん残っているからね。

まとめて git add .でステージングエリアに登録したりすることもあったりなかったり・・・

クマくん
クマくん

週末の土曜のぐちゃぐちゃの部屋みたいな感じってことね。

僕結構溜めちゃいがちだなぁ・・・

さめさん
さめさん

できるだけ、ファイルの変更も管理していったほうがいいね!

さめさん
さめさん

git rmコマンドについてはこの技術書が役にたつかも!

おすすめ記事

【コーチングスキルを徹底解説③】フィードバックについて詳しく知ろう!
プログラミングメンターが勧める未経験からエンジニアになるための準備
未経験者から最強のRailsエンジニアになるためのロードマップ
Git
スポンサーリンク
クマくんをフォローする
目指せ、スーパーエンジニア
タイトルとURLをコピーしました