我们团队中的每个人都使用 IntelliJ IDEA,我们发现将其项目文件(。知识产权和。Iml)转换为源代码控制,以便我们可以共享构建配置、设置和检查。另外,我们可以在 TeamCity 的持续集成服务器上使用这些检查设置。(我们有针对每个用户的工作区。中的 iws 文件。而不在源代码管理中)
然而,当您在 IDEA 中执行任何操作时,这些文件都会发生细微的变化。在 IDEA 的问题数据库(IDEA-64312)中存在一个问题,因此可能有人会认为这是 IDEA 中的一个 bug,但在可预见的未来,我们将需要解决这个问题。
直到最近,我们还在使用 Subversion,但是最近我们切换到了 Git。我们每个人都已经习惯了有一个项目文件的变更列表,我们忽略了这个变更列表,除非有项目文件变更,我们想与其他人共享,否则我们不会签入这个变更列表。但是对于 Git,真正的力量似乎是(从我们正在探索的内容来看)它所鼓励的连续分支,并且在分支之间切换是一种痛苦,因为项目文件总是被修改。通常它只是以某种方式合并到更改中,并尝试处理现在应用到新分支的项目文件更改。但是,如果新的分支已经更改了项目文件(比如该分支正在处理一个新的模块,而其他分支中还没有这个模块) ,git 就会抛出一个错误,当两个分支都发生了更改并且您在本地发生了更改时,将其合并到文件中没有任何意义,我可以理解它的意思。在命令行中,我们可以使用“-f”来强制 Git Checkout 命令抛出本地更改并使用分支的更改,但是(1) IDEA 中的 Git Checkout GUI 命令(10.5.1)似乎没有这个选项,所以我们需要定期切换到命令行。(2)我们不确定是否想要养成使用这个标志并告诉 Git 抛出本地更改的习惯。
所以,这里有一些想法,我们有一些选择,我们必须处理这一点:
我想我希望有一些明显的(或不明显的)解决方案,我们已经错过了,也许处理巨大的可定制性,Git 和 IDEA 似乎都有。但似乎我们不可能是唯一有这个问题的球队。与 Stack Overflow 类似的问题包括 3495191、 1000512和 3873872,但是我不知道它们是不是完全一样的问题,也许有人可以提出我列出的各种方法的优缺点,这些问题的答案中列出的方法,或者他们推荐的方法。