Gitでプロジェクトのサブツリーの名前を変更/移動したいのですが、
/project/xyz
に
/components/xyz
単純な を使用するとgit mv project components
、 のコミット履歴がすべてxyz project
失われます。履歴が維持されるようにこれを移動する方法はありますか?
ベストアンサー1
Git はコミットで操作を永続化するのではなく、名前の変更を検出するため、移動操作がファイルへの変更とは別にコミットされる限り、 を使用するかgit mv
しmv
ないかは問題ではありません。
コマンドlog
は--follow
名前変更操作の前に履歴を継続する引数。つまり、ヒューリスティックを使用して類似のコンテンツを検索します。
完全な履歴を検索するには、次のコマンドを使用します。
git log --follow ./path/to/file