我项目中的一些文件经常被删除和重新创建。Git 将它们视为一个全新的文件并将它们作为新文件提交,即使文件的内容没有更改。是否可以忽略文件重新创建并像往常一样处理它们,而不是重新创建文件?
我已将 core.trustctime 设置为 false,但没有任何改变。
PS:我正在使用 Github for Windows。
不幸的是,这是 Eclipse中的一个无法修复的错误(从 2002 年开始)。
发生的事情是这样的:Eclipse 有一个对象来跟踪工作区中的文件。他们已经定义了创建和删除等常用操作。所以发生的是你构建你的项目。
这会触发 EMFText 构建器。它将删除将触发“git rm”的文件,因为 Eclipse 无法区分“代码生成器删除文件以再次创建它们”和“用户永久删除文件”之间的区别。
然后再次创建文件。无论您想在提交历史中删除此删除还是无意的,Eclipse 都没有好办法。所以文件保持在删除状态。
MercurialEclipse和 Eclipse 上的所有其他版本控制插件也会受到影响。
解决方法:
创建一个脚本,它只是添加所有存在但处于“删除”状态的文件。
将您的代码生成器配置为在“清理”期间不删除文件。Xtext 可以做到这一点。
您可以尝试对 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' ' ')