Eine Konvertierung von Java zu Kotlin in Android Studio 2.3.2 (in 3.0 das gleiche Verhalten) erstellt eine neue Datei und löscht die vorherige. Git kennt diese Konvertierung also nicht. Und die git Geschichte spart nicht. In Intellij Idea ist alles in Ordnung. IDE benennt einfach Datei um und git speichert den Verlauf. Wie kann das gleiche in Android Studio.
Mit Git werden Umbenennungen von hinzugefügten / entfernten Dateipaaren vorgenommen, jedoch nur dann, wenn diese Dateien nahe genug sind, d. h. wenn die Datei ohne oder mit wenigen Änderungen umbenannt wurde.
Wenn Sie eine Java-to-Kotlin-Konvertierung anwenden, ändert sich normalerweise jede Zeile einer Datei, so dass Git nicht feststellen kann, dass diese alten und neuen Dateien irgendwie miteinander in Beziehung stehen.
Sie können stattdessen den folgenden zweistufigen Ansatz verwenden:
.java
file in .kt
und committen Sie es; .kt
-Datei. Git verfolgt die Umbenennungen nicht direkt; Es leitet sie basierend auf Datei hinzufügen / löschen Paare. Ich nehme an, dass Idea beim Umbenennen ein git add
ausführt, wohingegen Android Studio nur die alten Dateien löscht. Versuchen Sie, git add
für die neuen Dateien und git rm
für die alten Dateien selbst auszuführen, und Git sollte sie als Umbenennungen anzeigen.
Wie in den anderen Antworten erwähnt, verfolgt git den Inhalt der Datei, nicht ihre Umbenennungen. Wenn git log
mit der Option --follow
ausgeführt wird, wird der Verlauf neben Umbenennungen angezeigt. Eine Datei wird jedoch nur dann umbenannt, wenn der vorherige und der aktuelle Dateiinhalt einen Ähnlichkeitsindex von 50% oder mehr aufweisen, dh weniger als die Hälfte der Zeilen der Datei haben sich geändert.
In diesem Fall, in dem sich die meisten Zeilen geändert haben, können Sie mit der Option -M
eine untere Leiste für den Ähnlichkeitsindex festlegen:
Je nach Fall müssen Sie möglicherweise sogar unter 20% gehen.
Tags und Links git intellij-idea kotlin android-studio