gpt4 book ai didi

git - 如何应对Git源码控制下的IntelliJ IDEA项目文件不断变化?

转载 作者:IT王子 更新时间:2023-10-29 01:18:38 28 4
gpt4 key购买 nike

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

但是,当您在 IDEA 中执行任何操作时,这些文件的变化很小。 IDEA 的问题数据库中存在一个问题 (IDEA-64312),因此也许有人会认为这是 IDEA 中的一个错误,但在可预见的 future 我们需要忍受它。

直到最近,我们还在使用 Subversion,但最近我们切换到了 Git。我们每个人都已经习惯了有一个项目文件的更改列表,我们忽略了这些文件并且没有 checkin ,除非有我们想要与他人共享的项目文件更改。但是对于 Git,真正的力量似乎是(从我们正在探索的)它鼓励的连续分支,并且在分支之间切换是一种痛苦,因为项目文件总是被修改。通常它可以以某种方式 merge 更改,并尝试处理现在应用于新分支的项目文件更改。但是,如果新分支更改了项目文件(例如该分支正在处理一个尚未在其他分支中的新模块),则 git 只会抛出一个错误,指出 merge 文件没有任何意义当两个分支都有变化并且你在本地也有变化时,我更能理解它的意义。在命令行中,可以在“git checkout”命令上使用“-f”来强制它放弃本地更改并使用分支的代替,但是 (1) IDEA (10.5.1) 中的 Git Checkout GUI 命令似乎没有我们可以找到的选项,所以我们需要定期切换到命令行,并且(2)我们不确定我们是否想养成使用它的习惯标记并告诉 Git 丢弃我们的本地更改。

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

  1. 使项目文件完全脱离源代码控制。将它们放在 .gitignore 中,并通过其他方式将它们分发给每个人和 TeamCity,可能是通过将它们放在其他地方或其他名称下的源代码管理中。我们的团队足够小,这个选项足够可行,可以考虑,但似乎不太好。
  2. 继续使用它,努力确保在给定时间管理我们在哪些分支上拥有哪些文件。作为其中的一部分,我们可能会鼓励每个开发人员在他们的系统上拥有每个项目的多个副本,这样他们就可以将每个项目 checkout 到不同的分支,其中可能包含不同的项目文件集。
  3. 尝试在源代码管理中只包含项目 (.ipr),而模块 (.iml) 文件不在源代码管理和 .gitignore 文件中。似乎在 .ipr 中定期自行切换的主要内容是共享构建配置的顺序,但也许我们可以单独分享有关如何设置这些配置的信息。我不太确定 IDEA 如何处理这种只有部分文件的事情,尤其是在新 checkout 时。

我想我希望有一些我们错过的明显(或不明显)的解决方案,也许是处理 Git 和 IDEA 似乎都具有的巨大可定制性。但似乎我们不可能是唯一遇到这个问题的团队。 Stack Overflow 上类似的问题包括 3495191 , 1000512 , 和 3873872 ,但我不知道它们是完全相同的问题,也许有人可以针对我概述的各种方法、这些问题的答案中列出的方法或他们推荐的方法提出优缺点.

最佳答案

你可以使用IDEA的directory-based project structure ,其中设置存储在 .idea 目录而不是 .ipr 文件中。它提供更多 fine-grained control版本控制中存储的内容。 .iml 文件仍然存在,所以它不能解决它们中的随机变化(也许让它们不受源代码控制?),但是共享诸如代码样式和检查配置文件之类的东西很容易,因为它们中的每一个都将是在 .idea 目录下的自己的文件中。

关于git - 如何应对Git源码控制下的IntelliJ IDEA项目文件不断变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060727/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com