この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
ファイル名変更と移動
プロジェクトを進めるうち、ファイルの名前を変えたくなったり、場所を移動したくなることもあります。 そんなときは次の方法でファイル名の変更や移動をしましょう。
$ git mv <元ファイル名> <新しいファイル名>
git mvコマンドを実行すれば、ファイルの移動やファイル名変更が可能です。 これはgit rmでファイルを消してgit addした動作と同じ意味になります。 では、hello.htmlの名前を変更してみましょう。
$ git mv hello.html top.html
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: hello.html -> top.html
#
git mvを行うと、ステージングされた状態になります。ではコミットしましょう。
$ git commit -m "rename hello.html"
[master 71f6bd6] rename hello.html
1 files changed, 0 insertions(+), 0 deletions(-)
rename hello.html => top.html (100%)
これでhello.htmlはtop.htmlとしてコミットされました。 top.htmlについて履歴を確認してみましょう。
$ git log top.html
commit 71f6bd649dac2b536c2554034378ba8a3b8e084b
Author: syuta <nakamura.shuta@gmail.com>
Date: Tue Aug 30 16:50:55 2011 +0900
rename hello.html
普通にgit logとするだけでは、リネーム時のコミットログしかでてきません。 リネーム前の履歴も見たければ、--followオプションを付けます。
$ git log --follow top.html
commit 71f6bd649dac2b536c2554034378ba8a3b8e084b
Author: syuta <nakamura.shuta@gmail.com>
Date: Tue Aug 30 16:50:55 2011 +0900
rename hello.html
commit 7ae78778c7ea7d15df4ba7587d225b77f7b4cfa1
Author: syuta <nakamura.shuta@gmail.com>
Date: Mon Aug 22 21:18:32 2011 +0900
・・・・・・・・・・
ちなみに、git mv時に-n(--dry-run)オプションを付けて実行すると、どうなるのかを表示するだけで、実際に移動・リネームは行いません。
ファイルの削除
ファイルを削除するには、git rmを使用します。これは以前にもindexからファイルを削除するのに使用したことがあります。
$ git rm --cached <filename>
--cachedオプションを使用すれば、作業ツリーからファイルは削除せず、indexからファイルを削除します。addを取り消したい時に使用します。 通常の削除は、そのまま
$ git rm <ファイル名>
とします。削除情報がindexに登録されます。ワイルドカードを使用し、まとめてrmすることも可能です。 また、ディレクトリを再帰的に削除したい場合は-rオプションをつけてgit rmしてください。 git rm時でも-nオプションを使用すれば、実際にはrmせずにどのファイルがrmされるか確認することができます。
まとめ
今回はファイル名変更、移動、削除について解説しました。 次回はGitのリモート環境について解説する予定です。