1

我项目中的一些文件经常被删除和重新创建。Git 将它们视为一个全新的文件并将它们作为新文件提交,即使文件的内容没有更改。是否可以忽略文件重新创建并像往常一样处理它们,而不是重新创建文件?

我已将 core.trustctime 设置为 false,但没有任何改变。

PS:我正在使用 Github for Windows。

4

2 回答 2

2

不幸的是,这是 Eclipse中的一个无法修复的错误(从 2002 年开始)。

发生的事情是这样的:Eclipse 有一个对象来跟踪工作区中的文件。他们已经定义了创建和删除等常用操作。所以发生的是你构建你的项目。

这会触发 EMFText 构建器。它将删除将触发“git rm”的文件,因为 Eclipse 无法区分“代码生成器删除文件以再次创建它们”和“用户永久删除文件”之间的区别。

然后再次创建文件。无论您想在提交历史中删除此删除还是无意的,Eclipse 都没有好办法。所以文件保持在删除状态。

MercurialEclipse和 Eclipse 上的所有其他版本控制插件也会受到影响。

解决方法:

  1. 创建一个脚本,它只是添加所有存在但处于“删除”状态的文件。

  2. 将您的代码生成器配置为在“清理”期间不删除文件。Xtext 可以做到这一点。

于 2013-11-14T08:34:34.903 回答
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' ' ')
于 2013-11-14T08:17:18.590 回答