Gitのrmコマンドはインデックスやワーキングツリーからファイルを削除するためのコマンドだ。
ファイル削除にはGUIツールを使うことが多いかもしれないが、手早くやりたければやはりコマンドだ。覚えておいて損はないだろう。
Gitのrmコマンド
このコマンドは、ワーキング・ツリーとインデックスからファイルを削除するためのものだ。
このコマンドを実行すると、インデックスのみ、またはワーキング・ツリーとインデックスの両方からファイルが削除される。現在作業中のディレクトリからファイルを削除することはできないし、ワーキング・ツリーのファイルだけを削除してインデックスには残すということもできない。
コマンドの基本は簡単だ。
git rm [オプション]
では、実際の使い方をみてみよう。
インデックスのみ削除する場合
プログラム・ファイル:Program01.javaを指定してコマンドを実行する時は下記のようになる。
オプション:--cacheを指定して、
$ git rm --cache Program01.java
コマンドを叩けばOKだ。
例えば、Program01.javaとProgram02.javaがインデックスに登録されているとする。
git rmを実行するとどうなるか?
コマンドのオプションで指定したProgram01.javaファイルがインデックスから削除されている。しかし、ファイルは残っている。
インデックスとファイルの両方を削除する場合
インデックスとファイルをまとめて削除することもできる。
修正されていないファイルProgram01.javaがインデックスに登録されていれば、
$ git rm Program01.java
コマンドを叩けばOKだ。
もしファイルが修正されていたら、-fオプションを付けない。更新チェックが行われるため修正されたファイルを削除できない。
-fオプションを付けて、
$ git rm -f Program01.java
コマンドを叩けばOKだ。
例えば、一度コミットされたProgram01.javaとProgram02.javaが修正され、もう一度コミットのためにインデックスに追加された場合を考えよう。
このコマンドを実行すると、
確かにインデックスとワーキング・ツリーの両方からProgram01.javaが削除されている。この削除は、次のコミットを実行した時にリポジトリに反映される。
ディレクトリをまとめて削除する場合
ファイルをひとつひとつ指定しなくても、ディレクトリごとまとめて削除できる。
コマンドの基本は簡単だ。
git rm -r [ディレクトリ]
例えば、ディレクトリ:srcにあるProgram01.javaとProgram02.javaがインデックスに追加されている場合を考えよう。
ディレクトリを指定して、
$ git rm -r -cache src
コマンドを叩けばOKだ。
コマンドのオプションで指定したディレクトリの中のファイルが全てインデックスから削除される。
rmコマンドのオプション
rmコマンドでは次のようなオプションが使える。
オプション |
説明 |
<file> |
削除すべきファイル。ファイルglob (例:*.cなど)が一致するファイルを全て削除するために与えられる。 ディレクトリ(例えば、dir/file1とdir/file2を削除するためのdir)の名前がディレクトリの中とそのサブディレクトリの全てのファイルを再帰的に削除するために与えられる。しかし、この場合は-rオプションが必要である。 |
-r |
先頭のディレクトリ名が与えられたならば、再帰的な削除を許す。 |
-f --force |
更新チェックを無効にする。 |
まとめ
このページではGitのrmコマンドについて使い方を画面キャプチャも含めてまとめてみた。参考にしていただければ幸いだ。