背景:
正常replace 文件的二进制级别的差异将被替换, 当前文件将被完全重置为目标文件. 二进制比较差异将消失.
但是脸黑的我竟然赶上了这种情况.
但幸运的是 hard reset可以清除.
问题探究和测试:
1.文件确实是会被replace, 但是错误的被检测为 存在差异.
2.如果把差异文件提交, 相同的文件再次被修改replace 文件将不会检测到差异.
3.如果再重复replace+clear等操作 有一定概率不出现差异.但是这个概率很低
4. 2条只是一部分文件表现不同的原因, 更换为另一个git仓库 可以正常replace
5.现在新的Eclipse环境 绑定到相同的本地git库 问题依旧存在 我用的是kepler 换成 lunar后 git可以正常相应,不会错误的检测差异.
6.用新的Eclipse环境 重现现在git长裤 问题依旧存在.
解决:
由于随便修改保存后,文件都会一直出现在git stage里 如果开发涉及到很多的类并且需要做实验测试的,就会对于开发产生很大的不变. 所以问题必须解决.
试图去逻辑问题,但是矛盾点不多的冲击着你 很是煎熬.
回想出现问题的前一天 我做了什么. 我在windows安装的git 但Eclipse运行的是Egit插件 感觉不会有相互影响. 但这就是问题所在. 当卸载了git后. 问题就处理完了. 感谢同事的提醒.
最终这条逻辑拯救了我: 出现问题前后,所做的修改是产生问题的自变量.