Intellij Idea 9/10, em quais pastas verificar (ou não) o controle de origem?

119

Nossa equipe acabou de passar do Netbeans para o Intellij 9 Ultimate e precisa saber quais arquivos / pastas normalmente devem ser excluídos do controle de origem, pois não são "portáteis de estação de trabalho", ou seja: referenciam caminhos que existem apenas no computador de um usuário.

Até onde eu sei, a Intellij quer ignorar a maior parte do projeto .idea, incluindo

.idea/artifacts/*
.idea/inspectionProfiles/*
.idea/copyright/*
.idea/dataSources.ids
.idea/dataSources.xml
.idea/workspace.xml

No entanto, parece querer verificar os .imlarquivos que existem no diretório raiz de cada módulo.

Inicialmente, verifiquei o .ideadiretório inteiro por meio da linha de comando, que obviamente não está ciente do que "deveria" ser ignorado pelo Idea. O .ideadiretório inteiro normalmente é ignorado?

benstpierre
fonte

Respostas:

104

Temos um artigo de perguntas frequentes que cobre esta pergunta.

O formato [.idea] é usado por todas as versões recentes do IDE por padrão. Aqui está o que você precisa compartilhar:

  • Todos os arquivos no diretório .idea na raiz do projeto, exceto os arquivos workspace.xml e task.xml que armazenam configurações específicas do usuário
  • Todos os arquivos de módulo .iml que podem ser localizados em diferentes diretórios de módulo (aplica-se ao IntelliJ IDEA)

Tenha cuidado ao compartilhar o seguinte:

  • Artefatos Android que produzem uma construção assinada (conterão senhas de keystore)
  • No IDEA 13 e em dataSources.ids anterior , datasources.xml pode conter senhas do banco de dados. A IDEA 14 resolve esse problema .

Você pode considerar não compartilhar o seguinte:

  • arquivos .iml para os projetos baseados em Gradle ou Maven , pois esses arquivos serão gerados na importação
  • arquivo gradle.xml , consulte esta discussão
  • pasta de dicionários do usuário (para evitar conflitos se outro desenvolvedor tiver o mesmo nome)
  • Arquivos XML em .idea / libraries , caso sejam gerados a partir do projeto Gradle ou Maven

.idea O diretório substitui o antigo arquivo .ipr (Idea Project) e, se você deseja compartilhar o projeto entre os usuários, precisa compartilhar a pasta .idea (com as exceções mencionadas na FAQ) e todos os arquivos .iml.

CrazyCoder
fonte
2
Sim, está atualizado, não houve grandes alterações nos arquivos do projeto.
CrazyCoder
72
@CrazyCoder (+1) Tornaria nossa vida mais fácil se vocês colocassem os arquivos específicos do projeto e os arquivos específicos do usuário em diretórios separados.
IJ Kennedy
3
Comentar sobre um encadeamento antigo, mas a abordagem das FAQ de compartilhar toda a pasta .idea (exceto workspace.xml e tasks.xml) é problemática porque vários arquivos são alterados entre máquinas e entre sessões. O que realmente me incomoda: Python / Library no Mac está em dois lugares diferentes em Macs diferentes, então o pycharm.xml aparece por aí.
Matthew Cornell
29
essa é uma desculpa muito ruim para um FAQ. é uma grande discussão com pessoas fazendo perguntas. Que tal um exemplo .gitignore para um projeto?
Jeffrey Blattman
12
é inacreditável / impossível haver "alguns sim, outros não" na mesma pasta - isso ainda é a mesma loucura quatro anos depois? graças
Fattie
42

Consulte o arquivo JetBrains.gitignore do Github para sempre ter uma lista atualizada dos arquivos a serem ignorados.

whyceewhite
fonte
E o Rider? (o arquivo atualmente não mencioná-lo)
Roberto
6

Não é uma resposta exata à pergunta, mas existem exemplos de arquivos .gitignore disponíveis aqui, incluindo um para o JetBrains, que inclui o Intellij.

CodeClimber
fonte
1
Gostaria de poder votar novamente as outras respostas que não têm as perguntas. Obrigado por uma resposta real do código-fonte.
bobjones
1
.gitignoreLink do JetBrains
Camilo Sanchez
5

Você pode achar este post interessante: Mescla nos arquivos .IPR e .IWS do IntelliJ IDEA

Parece a concluir que você deve adicionar todos os arquivos, exceto para: workspace.xml, dataSources.xml, sqlDataSources.xmle dynamic.xml. A resposta está focada em ter arquivos que não mudam simplesmente de abrir o editor ou fazer alterações específicas de ide.

Tommy Andersen
fonte
4

Estou usando o PHPStorm.

Aqui está um exemplo de trecho para o seu .gitignore

# Ignore the following 2 PHPStorm files only workspace and tasks file
**/.idea/workspace.xml
**/.idea/tasks.xml

Todos os outros arquivos no .ideadiretório devem ser confirmados no seu repositório.

por exemplo: (comprometa todo o resto do .ideadiretório)

new file:   .idea/.name
new file:   .idea/encodings.xml
new file:   .idea/framework.iml
...

Docs: como gerenciar projetos em sistemas de controle de versão

Aqui está o que você precisa compartilhar:

Todos os arquivos no diretório .idea na raiz do projeto, exceto os arquivos workspace.xml e task.xml que armazenam configurações específicas do usuário

Todos os arquivos de módulo .iml que podem ser localizados em diferentes diretórios de módulo (aplica-se ao IntelliJ IDEA)

Então, basicamente, comprometa tudo, exceto workspace.xmle tasks.xml.

Anil
fonte
0

Sim, acredito que sim. Você pode verificar a configuração do SVN para ver o que é ignorado e adicionar tudo o que acha que deve ser ignorado.

duffymo
fonte