JavaからKotlinに変換するときにGitの履歴を残したい
何が問題か?
.javaのファイルを.ktに変換するのは IntelliJの「Convert Java File to Kotlin File」で一発だが、 それを普通にコミットすると履歴が残らない。
例:Hoge.javaをHoge.ktに変換。その後コミットして、git log Hoge.kt
でHoge.javaだった際の記憶が失われている・・・
解決策
Renameと変換でコミットを分ける。
IntelliJの機能を使う
知らんかったけど一番カンタン。
「Extra commit for .java > .kt renames」にチェックをつけると「Rename .java to .kt」というコミットに分けてくれる。
コマンドでやる
ちょっとめんどい
git mv Hoge.java Hoge.kt git commit -m 'Rename .java to .kt' git revert HEAD --no-commit # 元の状態に戻すけどコミットはしない # Convert Java File to Kotlin File して編集してコミット
雑なまとめ
- Gitでリネームするときに履歴を残したい場合には気をつける。
- そんでIntelliJはやっぱすごい