Git

【Git】追跡を維持したままフォルダ名やフォルダ構成を変更する方法

folder

Gitでソースコードの管理を始めたは良いけど、途中でプロジェクト構成を変更したくなったことはありませんか?
もしくは、名前空間の変更に伴ってフォルダ名を修正したくなったりしたことはありませんか?

Finderやエクスプローラで変更すると、元のファイルが消えた扱いになってしまったりして、ちょっと微妙な感じになってしまいますよね。

実は、既存の履歴を維持したまま、フォルダ名やフォルダの配置を変更するコマンドがあるんです。

その便利なコマンドは「git mv」コマンドといいます。
参考:Git – git-mv Documentation

今回はGitで既存の履歴追跡を維持したまま、フォルダの名前や構成を変更する方法についてご紹介しますね。

Gitでファイル名・フォルダ名を変更する

まずは、Gitでファイル名を変更する方法について確認しましょう。

ファイル名を変更するコマンドはこちらです。

git mv {変更対象のファイル名} {変更後のファイル名}

これで、これまでの変更履歴を維持したまま、既存のファイル名を変更することができます。

フォルダ名を変更する場合も同様です。

git mv {変更対象のフォルダ名}/ {変更後のフォルダ名}/

例えば、「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には他にも色々なコマンドがあるので、辞書代わりの本があると便利です。

今回はここまでです。それでは。