Gitでソースコードの管理を始めたは良いけど、途中でプロジェクト構成を変更したくなったことはありませんか?
もしくは、名前空間の変更に伴ってフォルダ名を修正したくなったりしたことはありませんか?
Finderやエクスプローラで変更すると、元のファイルが消えた扱いになってしまったりして、ちょっと微妙な感じになってしまいますよね。
実は、既存の履歴を維持したまま、フォルダ名やフォルダの配置を変更するコマンドがあるんです。
その便利なコマンドは「git mv」コマンドといいます。
参考:Git – git-mv Documentation
今回はGitで既存の履歴追跡を維持したまま、フォルダの名前や構成を変更する方法についてご紹介しますね。
そもそもGitがよくわからないよ、という場合は、まず入門用の書籍を1冊読んでみるのが良いと思います。
一度ざっくりとでも全体の知識を把握すると、そのあとの検索効率が格段に上がるのでおすすめです!
Gitでファイル名・フォルダ名を変更する
まずは、Gitでファイル名を変更する方法について確認しましょう。
ファイル名を変更するコマンドはこちらです。
git mv {変更対象のファイル名} {変更後のファイル名}
例:git mv file1 file2
これまでの変更履歴を維持したまま、既存のファイル名を変更することができます。
フォルダ名を変更する場合も同様です。
git mv {変更対象のフォルダ名}/ {変更後のフォルダ名}/
例:git mv folderA/ folderB/
例えばgit mv folderA/ folderB/
とすると、folderA
がfolderB
という名前に変わります。
git status
でGitのステータスを確認すると、先ほど変更したファイルがステージに追加されていることが確認できるはずです。
変更内容が問題なければ、いつも通り、コミット⇨プッシュをしてリモートに反映すればOKです。
Gitでフォルダ構成を変更する
それでは次に、Gitでフォルダ構成を変更する方法を確認してみましょう。
コマンドはこちらです。
git mv {変更対象のフォルダ}/ {変更先までのパス}/
例えば、以下のようなフォルダ構成だったとします。
folderA -- subfolderA -- subfolderC -- src...
|
- subfolderB
このsubfolderC
をsubfolderB
の下に移動させたい場合、以下のようにコマンドを実行します。
cd folderA/subfolderA // ディレクトリを移動
git mv subfolderC/ ../subfolderB/subfolderC/
これで移動は完了です。
この時点でのフォルダ構成は以下のようになります。
folderA -- subfolderA
|
- subfolderB-- subfolderC -- src…
終わりに
今回はGitで既存の履歴追跡を維持したまま、フォルダの名前や構成を変更する方法についてご紹介しました。
内容をまとめると以下のようになります。
- ファイル名やフォルダ名を変更する
git mv {変更するファイル・フォルダ名} {変更後のファイル・フォルダ名}
- フォルダの構成を変更する
git mv {変更するフォルダ名} {変更先までのパス}
Gitには他にも色々なコマンドがあるので、辞書代わりの本があると便利です。
どんなコマンドがあって、どんなことができるのかだけでも知っておくと、検索する際の初動が早くなりますよ。
Gitの基礎的な部分が不安だなという方には、入門用おすすめ書籍を紹介した記事がありますので、こちらをご確認ください。
今回はここまでです。それでは。