使用IDE for Java的一个好处就是你得到的自动重构。我遇到的问题是在使用 Refactor>之后移动将类移动到另一个包(在文件系统中移动文件本身),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
而不是一个天真的文件系统移动?
答案 0 :(得分:13)
这就是Git如何使用重命名/移动(删除旧文件并添加新文件)的方式。然后它检测文件的内容,并根据算法识别重命名。因此,即使它显示您删除并添加,如果您提交然后执行“git log --follow movedfilename”,它应该显示整个历史记录,甚至是重命名之前的历史记录。