在Android Studio中将文件(使用Git进行跟踪)从Java转换为Kotlin
在Android Studio 2.3.2中从Java到Kotlin的转换(在3.0中是相同的行为)创建一个新文件并删除以前的文件。 所以Git不知道这个转换。 而git的历史不会保存。 在Intellij Idea中一切都很好。 IDE只是重命名文件,并保存历史记录。 在Android Studio中如何做到这一点。
Git会根据添加/删除的文件对来重新命名,但是只有当这些文件足够接近时,也就是说,如果文件被重命名为没有或者少量的更改。
当你应用java-to-kotlin转换的时候,通常文件的每一行都会改变,这样git就不会发现这些新旧文件之间有某种联系。
您可以使用以下两个阶段的方法:
- 只需将
.java
文件的扩展名改为.kt
并提交; - 重命名它,应用转换并提交修改后的
.kt
文件。
Git实际上并不直接跟踪重命名; 它根据文件添加/删除对来推断它们。 我认为Idea在重命名时正在运行一个git add
,而Android Studio只是删除旧的文件。 尝试运行git add
新文件和旧文件的git rm
,Git应该将它们显示为重命名。
正如在其他答案中提到的,git跟踪文件的内容,而不是重命名。 当使用--follow
选项运行git log
,它会显示超出重命名的历史记录,但是,只有当前和当前文件内容的相似度指数为50%或更多,即小于该文件已经改变。
对于这种情况,大多数行已更改,您可以使用-M
选项设置相似性指数的较低的栏:
git log -M20% --follow -- /path/to/file
根据情况,你可能需要甚至低于20%。