在Android Studio 2.3.2中从Java到Kotlin的转换(3.0中的行为相同)会创建一个新文件并删除之前的文件。所以Git对此转换一无所知。并且git历史不会保存。在Intellij Idea中一切都很好。 IDE只重命名文件,git保存历史记录。如何在Android Studio中执行相同操作。
在Android Studio 2.3.2中从Java到Kotlin的转换(3.0中的行为相同)会创建一个新文件并删除之前的文件。所以Git对此转换一无所知。并且git历史不会保存。在Intellij Idea中一切都很好。 IDE只重命名文件,git保存历史记录。如何在Android Studio中执行相同操作。
Git从添加/删除的文件对中猜测重命名,但前提是这些文件足够接近,即文件是在没有或少量更改的情况下重命名的。
当您应用java-to-kotlin转换时,通常文件的每一行都会发生变化,因此git无法找到这些旧文件和新文件以某种方式相互关联。
您可以使用以下两阶段方法:
.java
归档到 .kt
并承诺;.kt
文件。Git实际上并不直接跟踪重命名;它根据文件添加/删除对推断出它们。我认为Idea正在运行 git add
当它重命名时,Android Studio只是删除旧文件。试试跑步 git add
你自己的新文件和 git rm
在旧文件和Git应该显示为重命名。
正如其他答案中所提到的,git跟踪文件的内容,而不是它的重命名。什么时候 git log
与...一起运行 --follow
选项,它显示除重命名之外的历史记录,但是只有当前一个和当前文件内容具有50%或更高的相似性索引,即小于文件行的一半已经改变时,它才认为要重命名文件。
对于这种情况,大多数行都已更改,您可以使用相应索引设置较低的条形 -M
选项:
git log -M20% --follow -- /path/to/file
根据具体情况,您可能需要甚至低于20%。