如何在不断变化的Git源代码管理下处理IntelliJ IDEA项目文件?

用户名

我们团队中的每个人都使用IntelliJ IDEA,我们发现将其项目文件(.ipr和.iml)放入源代码管理很有用,这样我们就可以共享构建配置,设置和检查。另外,我们可以在TeamCity的持续集成服务器上使用这些检查设置。(我们在.gitignore文件中而不是在源代码管理中有每个用户工作区的.iws文件。)

但是,当您在IDEA中几乎执行任何操作时,这些文件几乎不会更改。IDEA的问题数据库(IDEA-64312)中存在一个问题,因此也许有人会认为这是IDEA中的一个错误,但是在可预见的将来,我们需要与它一起解决这个问题。

直到最近,我们仍在使用Subversion,但最近我们切换到了Git。我们每个人都已经习惯于拥有一个被忽略并且不会检入的项目文件的更改列表,除非存在要与他人共享的项目文件更改。但是使用Git,真正的力量似乎是(根据我们的探索)它所鼓励的连续分支,并且在分支之间进行切换非常麻烦,因为项目文件总是被修改过。通常,它只能以某种方式合并更改,并尝试处理现在应用于新分支的项目文件更改。但是,如果新分支更改了项目文件(例如,该分支正在其他分支中尚未使用的新模块上工作),则git只会抛出一个错误,即它不会 当两个分支都已更改并且您在本地进行更改时,合并到文件中没有任何意义,我宁可理解其要点。在命令行中,可以在“ git checkout”命令上使用“ -f”强制其抛出本地更改并使用分支的更改,但是(1)在IDEA(10.5.1)中使用Git Checkout GUI命令似乎没有这个选项可以找到,因此我们需要定期切换到命令行,并且(2)我们不确定是否要习惯于使用该选项标记并告诉Git放弃我们的本地更改。

因此,这是我们对必须处理的选项的一些想法:

  1. 将项目文件完全移出源代码管理。将它们放在.gitignore中,然后通过其他方式将它们分发给每个人和TeamCity,也许是通过将它们置于其他位置或使用其他名称的源代码控制中。我们的团队足够小,可以考虑这个选项,但这似乎并不好。
  2. 继续使用它,尝试确保在给定时间管理我们在哪个分支上拥有哪些文件。在此过程中,我们可能鼓励每个开发人员在他们的系统上拥有每个项目的多个副本,以便他们可以将每个项目检出到具有不同项目文件集的不同分支。
  3. 尝试仅在源代码管理中包含项目(.ipr),而模块(.iml)文件不在源代码管理和.gitignore文件中。定期在.ipr中自动切换的主要事情是共享构建配置的顺序,但是也许我们可以单独共享有关如何设置这些信息的信息。我不太确定IDEA是如何处理这种事情的,尽管它只有一些文件,特别是在新结帐时。

我想我希望我们缺少一些显而易见的(或非显而易见的)解决方案,也许可以解决Git和IDEA似乎都具有的巨大可定制性。但是似乎我们不可能成为唯一遇到此问题的团队。是一种类似于Stack Overflow上的问题包括:34951911000512,和3873872,但我不知道,因为他们是完全一样的问题,也许有人能拿出的利弊我有不同的方法概述,这些问题的答案中列出的方法或它们建议的方法。

埃斯科·朗托拉(Esko Luontola)

您可以使用IDEA的基于目录的项目结构,其中的设置存储在.idea目录中,而不是.ipr文件中。它对版本控制中存储的内容提供了更细粒度的控制。.iml文件仍然存在,因此它不能解决它们中的随机更改(也许让它们脱离源代码控制?),但是共享诸如代码样式和检查配置文件之类的内容很容易,因为每个文件都可以在其自己的.idea目录下的文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Intellij Idea继续删除项目文件

IntelliJ IDEA-如何在非Java项目中为Java文件启用代码完成/调试

如何在Git源代码管理下用子文件夹制作一个单独的Eclipse项目

在IntelliJ IDEA的Java项目的文件夹结构

在多项目构建 Intellij IDEA 中将文件保存到目录

在IntelliJ IDEA中看不到项目文件夹

如何在Intellij IDEA项目视图中显示所有文件?

在IntelliJ IDEA中创建新项目时自动创建的文件和文件夹是什么

处理共享 IntelliJ 项目的 .IML 文件中的重大(但无意义)不断变化

我如何从IntelliJ IDEA的项目的可执行文件?

在 IntelliJ IDEA 中,如何为新项目设置默认检查配置文件?

丢失.idea文件夹后,如何在Android Studio中重新创建项目?

IntelliJ IDEA在子项目中看不到从protobuf文件生成的类

IntelliJ IDEA中的项目的文件夹层次结构有什么问题?

是否有“简易版” IntelliJ IDEA,无需项目即可编辑文件?

无法在Intellij Idea的Springboot项目上通过模板创建jsp文件

打开项目时自动导入Intellij IDEA Java样式格式化程序文件

在项目窗口中拖放文件在IntelliJ IDEA 15中不起作用?

在Maven / Intellij Idea项目中排除日志文件夹

在IntelliJ IDEA中找不到“使用Gradle文件同步项目”按钮

在IntelliJ IDEA中查找项目的所有文件中的单词

使用 ElectronJS 应用程序获取 IntelliJ IDEA/Android Studio 打开的项目文件夹

Intellij Idea:在项目浏览器中禁用kotlin文件扩展

如何将项目文件夹从IDEA推送到Github存储库

如何使用Git处理IntelliJ项目之外的文件?

IntelliJ IDEA的认为Spring项目是Android项目

IntelliJ IDEA的:对的StackOverflowError项目构建

Intellij IDEA和Gradle项目

如何在IntelliJ idea Java项目中使用不同的输入文件运行同一可执行文件的多个实例