我们使用 Git、IntelliJ 和 Maven。我们在 IntelliJ 的配置文件中遇到了一些问题。例如,*.iml 文件会根据项目是构建还是重新构建或mvn clean
执行“”而不断变化。我们知道 IntelliJ 中有一些错误会导致这些文件发生更改。
计划是git update-index --skip-worktree
对所有 *.iml 文件(以及其他一些文件)使用“”。这样,开发人员可以为这些文件维护适当的状态,并且如果他们必须更改(新的依赖项或模块)以重新启用跟踪,更改文件然后切换回跳过更改。所以其他开发人员获得了更新的文件,但他们的更改不会被推送回 git 存储库。
根据http://fallengamer.livejournal.com/93321.html这有可能起作用。
这确实适用于本地测试存储库。但是一旦移动到远程它开始表现不同。" git status
" 显示不需要做任何事情,但切换分支会显示本地更改将被覆盖的消息(主要是“忽略”的 *,iml 文件),尽管“ git ls-files -v
”在文件上显示了正确的标志。在 IntelliJ 中有一个带有相同警告的空窗口,所以这相当混乱。
“skip-worktree”选项有什么问题?它不应该在合并中幸存下来吗?还是它的行为是为了不同的目的?
谢谢!