Não é possível ignorar .idea / workspace.xml - continua aparecendo


237

Usando o PHPStorm, estou tentando ignorar o workspace.xmlque aparece toda vez que tento fazer um commit do git.

Minha .gitignoreaparência é:

/.idea/
.idea/workspace.xml

Como em um momento em que o arquivo foi confirmado, eu também executei:

git rm --cached .idea/workspace.xml e, em seguida, cometeu a remoção, transferida para um repositório simples.

Mas o arquivo continua aparecendo mais tarde, quando faço alterações no projeto.

Alguma idéia do que estou perdendo?


Tentei de tudo abaixo, adicionado ao gitignore, mas ele continua voltando, ignorando o gitignore.
Olaf

Parece com a mesma pergunta . Confira e veja ...
Luca Ballore 19/02

Chek neste link: stackoverflow.com/questions/8156299/… . Parece o seu mesmo problema.
Luca Ballore 19/02/16

Respostas:


289

Eu estava enfrentando o mesmo problema, e isso me levou até a parede. O problema acabou sendo que a pasta .idea JÁ estava confirmada no repositório anteriormente e, portanto, eles estavam sendo rastreados pelo git, independentemente de você os ter ignorado ou não. Eu recomendaria o seguinte, depois de fechar o RubyMine / IntelliJ ou qualquer IDE que você esteja usando:

mv .idea ../.idea_backup
rm .idea # in case you forgot to close your IDE
git rm -r .idea 
git commit -m "Remove .idea from repo"
mv ../.idea_backup .idea

Depois, certifique-se de ignorar .idea no seu .gitignore

Embora seja suficiente ignorá-lo no .gitignore do repositório, sugiro que você ignore globalmente os arquivos de pontos do seu IDE.

Caso contrário, você precisará adicioná-lo a todos os .gitgnore para cada projeto em que trabalha. Além disso, se você colaborar com outras pessoas, é recomendável não poluir o .gitignore do projeto com uma configuração privada que não é específica ao código-fonte do projeto.


O último comando deve ser "mv ../.idea_backup .idea" em vez de "git mv ../.idea_backup .idea" para evitar erro de git
Leo Caseiro

2
Eu tenho que fazer git rm .idea, em vez de git add .ideafazer o trabalho
Serge

Também mudei addpara rmmas, no meu caso, tive que adicionar -rtambém para remover tudo recursivamente. git rm -r .idea
precisa saber é o seguinte

2
Uau ... obrigado !! Tentei isso um milhão de maneiras diferentes sem sucesso. Esta é a abordagem passo a passo correta. A principal diferença que faltava era garantir que meu IDE fosse fechado - não perca essa etapa! Resposta excelente :)
Jonny Asmar

Obrigado! muito, muito tempo gasto procurando soluções de trabalho e tentativas diversas. Esta é a maneira mais simples de fazer isso.
Edepe

83

Eu tive esse problema agora, tive que fazer git rm -f .idea/workspace.xml agora parece que acabou (eu também tive que colocá-lo .gitignore)


7
Eu também acrescentaria, apenas por uma questão de precisão, que o Idea intellij deve ser fechado ao executar essas etapas.
LoreV 17/04

29

Eu precisei:

  • remova o arquivo do git
  • empurre o commit para todos os controles remotos
  • certifique-se de todos os outros committers atualizados do controle remoto

Comandos

git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all

Outros committers devem executar

git pull

7
Embora esteja contente por esta resposta, não posso deixar de pensar que seria mais útil se as instruções de como realizar as etapas (por exemplo, diretivas de linha de comando) fossem incluídas.
flyingace

Chek neste link: stackoverflow.com/questions/8156299/… . Parece exatamente com o seu mesmo problema.
Luca Ballore 19/02/16

encerre o IDE \ n git rm -f .idea / workspace.xml \ n git commit -m "removendo workspace.xml" \ n edite .gitignore para excluir workspace.xml \ n abra o IDE
Srneczek 3/16

27

No mesmo diretório em que você vê o arquivo aparecer, faça:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i(a edição), adicione .idea/workspace.xmlem uma das linhas, Esc,:wq

Você deveria ser bom agora


2
Ou, para adicionar a linha ao .gitignore, basta digitar echo .idea/workspace.xml>>.gitignore. Você não precisa abrir o vi para tudo. Como alternativa, e o que eu faria, é ter um arquivo .gitignore separado no diretório .idea:echo workspace.xml>>.idea/.gitignore
Godsmith

17

Para remover .idea/completamente do git sem afetar sua configuração do IDE, você pode simplesmente fazer:

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"

6

Se você tiver vários projetos em seu repositório git, .idea/workspace.xmlnão corresponderá a nenhum arquivo.

Em vez disso, faça o seguinte:

$ git rm -f **/.idea/workspace.xml

E faça com que seu .gitignore seja algo parecido com isto:

# User-specific stuff:
**/.idea/workspace.xml
**/.idea/tasks.xml
**/.idea/dictionaries
**/.idea/vcs.xml
**/.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
**/.idea/dataSources.ids
**/.idea/dataSources.xml
**/.idea/dataSources.local.xml
**/.idea/sqlDataSources.xml
**/.idea/dynamic.xml
**/.idea/uiDesigner.xml

## File-based project format:
*.iws

# IntelliJ
/out/

5

Apenas diga ao git para não assumir que ele mudou, não importa o que:

git update-index --assume-unchanged src/file/to/ignore

sim, você pode remover os arquivos do repositório git. Mas se sua equipe usa o mesmo IDE ou você é você mesmo, provavelmente não deseja fazer isso. Para si mesmo, você deseja ter um bom ponto de partida para retomar o trabalho, também para seus colegas de equipe.


0

A maneira como fiz no Android Studio, que também é baseado no IntelliJ, era assim. Na caixa de diálogo de confirmação, reverti a alteração para workspace.xml e depois fui movida para um arquivo não versionado. Depois disso, apaguei isso da caixa de diálogo de confirmação. Agora não aparecerá na lista de alterações. Observe que meu gitignore já estava incluindo .idea / workspace.xml


0

Desde no meu caso eu estava realizando uma primeira confirmação de um projeto, a simples exclusão .gite .ideapastas e, em seguida, reinicializar git usando git initajudou a resolver um problema. Agora eu não tenho .idea.


0

Mesmo problema para mim com o PHPStorm

Finalmente resolvi fazer o seguinte:

  • Remova o diretório .idea /
  • Mover .gitignore para o mesmo nível será o novo .idea gerado /
  • Escreva os arquivos que você precisa ser ignorado e .idea / too. Para ter certeza de que será ignorado, coloquei o seguinte:

    • .idéia/
    • .idéia
    • .idéia/*

Não sei por que funciona dessa maneira, talvez .gitignore precise estar no mesmo nível de .idea para poder ser ignorado neste diretório.


-1

Ignorar os arquivos que terminam com .iws, e os workspace.xmle tasks.xmlarquivos em seu .gitignore Referência

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.