IntelliJでクラスをリファクタリングすると、gitはファイルの古いログの追跡を失いますか?ログを保持するようにファイルをリファクタリングする方法はありますか、それとも何かが足りませんか?
SourceTreeでファイルのログをチェックしていますが、すべて同じだと思います。
IntelliJでクラスをリファクタリングすると、gitはファイルの古いログの追跡を失いますか?ログを保持するようにファイルをリファクタリングする方法はありますか、それとも何かが足りませんか?
SourceTreeでファイルのログをチェックしていますが、すべて同じだと思います。
移動/名前の変更は Git によって自動的に処理され、git が実際に移動したことを検出した場合はログを保持する必要があります。IDEA、ターミナル、またはファイルマネージャーのいずれから名前を変更してもかまいません。
git が名前の変更を「追跡」しないのはなぜですか?も参照してください。および関連するバグ レポートのコメント。
このアプローチは、おそらくあなたが聞きたいことではありませんが、私が行っていたかなり大きな再パッケージング中に git が名前の変更を検出する (そして最終的には実際のファイル履歴を理解する) のに役立ちました (パッケージの名前を に変更com.something
し、そのcom.somethingelse
中に約 300 個のファイルを含めます)。
git mv MyProject\src\main\java\com\something MyProject\src\main\java\com\somethingelse
。Edit > Find > Replace in path
出現するすべての を に置き換えcom.something
ますcom.somethingelse
。