はじめに
gitを使って開発している時にファイル名を変更する必要が出てきました。
そういえば、途中でファイル名を変更したらgitの履歴とかどうなっちゃうの?という疑問が生まれたので調べました。
備忘録として残そうと思います。
ローカルで名前を変えただけだとどうなるのか
現在開発中のUserDeleteのファイルを試しにUserDeletに変更し、git statusで確認したところ、
UserDelete.tsxは削除され、UserDelet.tsxがgitで追跡できていません、という扱いになっていました。
~ % git status
On branch <ブランチ名>
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
deleted: frontend/app/src/components/pages/UserDelete.tsx
Untracked files:
(use "git add <file>..." to include in what will be committed)
frontend/app/src/components/pages/UserDelet.tsx
ファイル名で判別していると考えるとそりゃそうなるか、と思いました。
"git mv"コマンドでファイル名を変える
それならどうするかというと、ファイル名を変えたことを"git mv"コマンドでgitに教えてあげる必要があるみたいです。
git mv 変更前のファイル名 変更後のファイル名
何も知らずにファイル名を変えて、git statusで削除された扱いになっていたらビビりますがこれでもう大丈夫ですね!
参考