5

IntelliJでクラスをリファクタリングすると、gitはファイルの古いログのトラックを失いますか?ファイルをリファクタリングしてログを保持する方法はありますか、それとも何か不足していますか?IntelliJでリファクタリングするときにgitファイルに変更ログを保存する方法は?

私はSourceTreeのファイルのログをチェックしていますが、すべてについて同じものだと思います。

+0

Gitは単独でバージョン管理システムです。なぜリファクタリングログを保存する必要がありますか? – madhead

+0

ファイルの履歴を確認すると、すべての変更が表示されます。表示されているgit mvを実行しているときにintelliJリファクタリングすると表示されない – ThanksBro

答えて

2

移動/名前変更is handled automatically by Gitとgitが実際に移動したことを検出した場合はログを保持する必要があります。 IDEA、端末またはファイルマネージャから名前を変更するかどうかは関係ありません。

Why does git not "track" renames?およびcomments in the related bug reportも参照してください。

+3

バグレポートでは、端末でリファクタリングするときに動作し、IntelliJでリファクタリングすると動作しないようです。ありがとう、私はYoutrackで続けます – ThanksBro

0

このアプローチ、おそらくあなたが聞きたいではないものを、私は内側〜300のファイルでcom.somethingelseにパッケージcom.somethingの名前を変更する(していた非常に大きな再包装時にgitのは、名前の変更を検出し(そして最終的には実際のファイル履歴を理解する)助けたものの、それは):

  1. "git mv"を使用してIntelliJ以外でのみ名前を変更しますか? Edit > Find > Replace in pathcom.somethingelsecom.somethingのすべての出現を置き換える - 「git mv MyProject\src\main\java\com\something MyProject\src\main\java\com\somethingelse
  2. が通常のIntelliJテキスト置き換えを使用して、ソースファイル内の再パッケージの変更を行いますコミットします。
  3. コミット
関連する問題