使用适用于 Java 的 IDE 的一大优点是您可以获得自动重构。我遇到的问题是,在使用 Refactor > Move 将一个类移动到另一个包中(将文件本身移动到文件系统中)之后,git status
显示旧位置的文件已删除,新位置的文件已添加。
我发现的解决方法很笨拙:
mv src/com/example/newpackage/Foo.java src/com/example/oldpackage/Foo.java
git mv src/com/example/oldpackage/Foo.java src/com/example/newpackage/Foo.java
有什么方法(当使用 Eclipse 的 Git 插件时)让重构执行 git mv
而不是简单的文件系统移动?
最佳答案
这就是 Git 处理重命名/移动(删除旧文件并添加新文件)的方式。然后它会检测文件的内容,并根据算法识别重命名。所以即使它显示你删除和添加,如果你提交然后执行“git log --follow movedfilename”,它应该会显示整个历史记录,甚至是重命名之前的历史记录。
关于java - Eclipse 的 Refactor > Move 可以和 Git 集成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6828599/