Gitを使った分散開発管理11 – ファイルのmvとrm
ファイル名変更と移動
プロジェクトを進めるうち、ファイルの名前を変えたくなったり、場所を移動したくなることもあります。 そんなときは次の方法でファイル名の変更や移動をしましょう。
$ 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のリモート環境について解説する予定です。