Eclipse的Refactor> Move可以与Git集成吗?

Jos*_*ver 17 java eclipse git

使用IDE for Java的一个好处就是自动重构.我遇到的问题是,在使用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
Run Code Online (Sandbox Code Playgroud)

有没有办法(当使用Eclipse的Git插件时)让重构做一个git mv而不是一个天真的文件系统移动?

dun*_*nni 13

这就是Git如何使用重命名/移动(删除旧文件并添加新文件)的方式.然后它检测文件的内容,并根据算法识别重命名.因此,即使它显示您删除并添加,如果您提交然后执行"git log --follow movedfilename",它应该显示整个历史记录,甚至是重命名之前的历史记录.

  • 重要的是要注意,如果您"移动"文件时还要修改其内容,则此操作无效.在这种情况下,git只会将其视为删除/添加.您需要确保以两个独立的步骤暂存/提交移动更改(或内容更改). (8认同)