java - Eclipse 的 Refactor > Move 可以和 Git 集成吗?

标签 java eclipse git

使用适用于 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/

相关文章:

java - 使用 JPA 和 BeansBinding 时保存数据

java - 包含同一父类(super class)的不同对象的 ArrayList - 如何访问子类的方法

java - 创建一个计算利息并显示 10 年利息成本的表格

android - SVN - 删除 bin 文件夹如何导致 src 文件夹被删除?

git - GnuTLS接收错误(-110): The TLS connection was non-properly terminated

python - Visual Studio 中的一个项目有多个团队 - 不好的做法?

git - 如何检查远程(源)Git 存储库上的更改

java - 新 session 是在 Applet 和托管 bean 的连续 servlet 请求之间创建的吗?

java正则表达式提取带有边界和可选空格的数字

java - 使用 ant 运行 SWTBot 测试时分派(dispatch)事件 org.osgi.service.event.Event 时出现异常