6

IntelliJでクラスをリファクタリングすると、gitはファイルの古いログの追跡を失いますか?ログを保持するようにファイルをリファクタリングする方法はありますか、それとも何かが足りませんか?

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

4

2 に答える 2

3

移動/名前の変更は Git によって自動的に処理され、git が実際に移動したことを検出した場合はログを保持する必要があります。IDEA、ターミナル、またはファイルマネージャーのいずれから名前を変更してもかまいません。

git が名前の変更を「追跡」しないのはなぜですか?も参照してください。および関連するバグ レポートのコメント

于 2013-02-08T19:01:39.020 に答える
2

このアプローチは、おそらくあなたが聞きたいことではありませんが、私が行っていたかなり大きな再パッケージング中に git が名前の変更を検出する (そして最終的には実際のファイル履歴を理解する) のに役立ちました (パッケージの名前を に変更com.somethingし、そのcom.somethingelse中に約 300 個のファイルを含めます)。

  1. 「git mv」などを使用して、IntelliJ の外部でのみ名前変更を行いますgit mv MyProject\src\main\java\com\something MyProject\src\main\java\com\somethingelse
  2. 専念
  3. 通常の IntelliJ text-replace を使用してソース ファイルの変更を再パッケージ化し、Edit > Find > Replace in path出現するすべての を に置き換えcom.somethingますcom.somethingelse
  4. 専念
于 2016-04-26T06:47:54.280 に答える