2017-01-03 67 views
2

我以某种方式导致git在重命名Java项目中的目录后感到困惑。现在有一大堆幻影文件位于我的工作副本中,用于旧文件名,我似乎无法删除它。Git:在重构文件名后无法清除工作副本

之一这些变化的一个例子是:

例DIFF:NumberUtils.java

-package com.RedactedCompanyName.Helpers; +package com.RedactedCompanyName.helpers;

它基本上只是提交所述位置改变。但每次我尝试提交此更改,git的(和源树)只是忽略它,他们继续作为提交的修改

我已经试过周围StackOverflow的所有不同的混帐建议:

git reset --head head git clean -rf

他们似乎都没有工作。

即使在重构之前重置为之前的提交,正确地执行操作并合并回来也不起作用,因为此文件损坏会阻止合并。

我甚至尝试过一种'得分地球'的方法,以及我刚刚克隆了本地新副本的地方。第二次我做了第一次提交,这个噪音又重新出现了。

回答

1

不幸的是,您在重命名类时必须使用git mv(因为标准工具在重命名/重构Java文件时通常不会这么做)。如果你不能这样做,那么你必须使用git rm删除旧文件。

例如,

git mv OldNumberUtils.java NumberUtils.java 
git commit -m "Renamed OldNumberUtils to NumberUtils" 

,你的情况(因为git不知道重命名)

git rm OldNumberUtils.java 
git commit -m "Removing OldNumberUtils, because it was renamed NumberUtils" 
+0

这工作!我想这个故事的寓意是不要在Java项目中保留文件夹名称,除非你真的有很好的理由 – Swefnian

相关问题