我的项目中的某些文件会被删除并经常重新创建。 Git将它们视为一个完全新的文件,并将它们作为新文件提交,即使文件内容未更改也是如此。是否可以忽略文件重新创建并将其作为常规文件处理,而不是重新创建文件?
我已将core.trustctime设置为false,但没有任何更改。
PS:我正在使用Github for Windows。
答案 0 :(得分:2)
This is a bug in Eclipse不会被修复(从2002年开始)。
这是怎么回事:Eclipse有一个跟踪工作区中文件的对象。他们定义了通常的操作,如创建和删除。所以会发生什么是你建立你的项目。
这会触发EMFText构建器。它将删除将触发“git rm”的文件,因为Eclipse无法区分“代码生成器删除文件以再次创建它们”和“用户删除文件的好处。”
然后再次创建文件。无论你是想在你的提交历史中删除这个删除还是无意的,Eclipse都没有好办法。因此文件保持在已删除状态。
MercurialEclipse以及Eclipse上的所有其他版本控制插件也会受到影响。
解决方法:
创建一个脚本,只添加所有存在但处于“删除”状态的文件。
将代码生成器配置为在“清除”期间不删除文件。 Xtext可以做到这一点。
答案 1 :(得分:1)
您可以尝试在EMFText重新生成的所有文件上应用git update-index assume-unchanged指令。
请参阅“git update-index --assume-unchanged on directory”:
cd /path/to/EMFText/generated/files
git update-index --assume-unchanged $(git ls-files | tr '\n' ' ')