como fazer o Git ignorar arquivos .idea criados por Rubymine

185

Eu uso Rubymine para projetos Rails. Muitas vezes, Rubymine faz alterações nos .idea/*arquivos com os quais não me importo. Mas isso continua me impedindo de verificar novas filiais e torna minha versão .idea/diferente dos meus colegas de trabalho.

Já adicionado .idea/a .gitignore, mas mantém o rastreamento de alterações no .idea. Como devo fazer isso da maneira certa?

Abaixo está uma das mensagens de erro típicas que recebi:

error: Your local changes to the following files would be overwritten by checkout:
    .idea/workspace.xml
AdamNYC
fonte
9
talvez você já tenha cometido; você precisa git rm; adicione-o para ignorar.
Kaan Yy

Respostas:

257

apenas .idea/funciona bem para mim

the_joric
fonte
5
Olá! quer nos dizer mais como você faz isso ... não está funcionando para mim? :(
YoniGeek
O Git funciona um pouco diferente disso. Veja a página de manual do git para mais informações.
precisa saber é o seguinte
4
@BradBird Eu apenas tentei - funciona para subpastas também. Além disso, você pode querer tentar**/.idea/
the_joric
22
Parte do problema é que, se você já organizou suas coisas, o .gitignore não ajudará.
Dan Rosenstark
12
Mas se você deseja ignorar arquivos / pastas depois de adicioná-los / verificá-los, é necessário removê-los com "git rm -r --cached web / uploads" (neste exemplo, adicionei a pasta "web / uploads" ao .gigignore após o check-in) source: help.github.com/articles/ignoring-files #
Dung
311

Tente git rm -r --cached .ideano seu terminal. Desativa o rastreamento de alterações.

Petr Syrov
fonte
2
Muito obrigado! Mas por que está no cache depois que eu fiz check-out de um repositório totalmente vazio?
Budi
1
Obrigado, extremamente útil. Usei isso para remover os arquivos e, em seguida, adicionei .idea ao gitignore e funcionou muito bem. Muito obrigado!
Tim R
Isso realmente não funciona quando a pasta .idea já está sendo rastreada
ACV
Portanto, se a pasta já estiver sendo rastreada no Git, adicionar o .idea / ao .gitignore não impedirá o Git de rastreá-lo. Você precisará primeiro "git rm -r --cached .idea" e depois adicionar .idea / ao seu .gitignore. Isso será ótimo para mim.
Sam003
41

Observe que o JetBrains recomenda "Se você decidir compartilhar arquivos de projeto IDE com outros desenvolvedores ...", rastreando todos os .idea/*arquivos, exceto os três arquivos a seguir :

  • workspace.xml
  • use.statistics.xml
  • tasks.xml

Então, para seguir os conselhos deles, você adicionaria esses 3 arquivos ao seu .gitignore.


Fonte:

Se você decidir compartilhar arquivos de projeto IDE com outros desenvolvedores, siga estas diretrizes:
...
Aqui está o que você precisa compartilhar:

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

Como gerenciar projetos em sistemas de controle de versão ( arquivo morto )

Há algumas notas adicionais nessa página sobre quais outros arquivos gitignore para diferentes IDEs específicos do jetbrains e cria.

Daryn
fonte
10
Embora eu concorde com esta resposta [+1 para correção], acho que as equipes que não são rigorosas com os IDEs e assim podem se safar sem fazer o check-in da .ideapasta ... De qualquer forma, nunca fez sentido para mim, arquivos sempre há conflitos por razões que não fazem sentido.
JaKXz
6
É uma prática ruim confirmar arquivos específicos do IDE. Uma razão é que diferentes desenvolvedores podem usar ferramentas diferentes. Outro é que esses arquivos podem conter configurações específicas do usuário, que ficam em conflito o tempo todo.
Jordan Silva
2
Esta recomendação é uma má prática. Usá-lo em um projeto é a melhor maneira de versão de arquivos que contêm informações específicas do usuário, como caminho absoluto ... Basta olhar dentro da sua .ideapasta antes de seguir esta recuperação.
JBE 5/17
1
Embora eu concorde que comprometer cegamente arquivos IDE é sempre uma má ideia, pois comprometer cegamente qualquer coisa é uma má idéia. Em algumas circunstâncias, o compartilhamento de arquivos IDE pode funcionar bem. É conceitualmente semelhante ao compartilhamento de arquivos de orquestração de contêiner, pois eles são uma maneira de executar aplicativos. Assim como os arquivos IDE, é uma maneira de desenvolver o projeto e pode conter definições úteis, como executar testes de unidade ou comandos de cobertura de código, organizados cuidadosamente para um IDE específico. A maioria dos .ideaarquivos (pelo menos no PyCharm) foi projetada para ser compartilhada.
Samuel Harmer
26

Adicione .idea/*à sua lista de exclusão para impedir o rastreamento de todos os arquivos .idea, diretórios e sub-recursos.

Percepção
fonte
24

se um arquivo já estiver sendo rastreado pelo Git, adicionar o arquivo ao .gitignore não impedirá o Git de rastreá-lo. Você precisará primeiro executar o arquivo (s) ofensivo (s) e depois adicionar ao seu .gitignore.

Adicionar .idea / deve funcionar

appsmatics
fonte
Essa deve ser a resposta mais abrangente!
Sam003
21

usar git rm -r --cached .ideano seu terminal funcionou muito bem para mim. Ele desabilita o rastreamento de alterações e desativa vários arquivos na pasta rubymine (idea /) que eu poderia adicionar e confirmar com o git, removendo a comparação e permitindo que a configuração gitignore .idea/funcione.

GMarx
fonte
13

Feche o PHP Storm no terminal, vá para o tipo de pasta do projeto

git rm -rf .idea; git commit -m "delete .idea"; git push;

Em seguida, vá para a pasta do projeto e exclua a pasta .idea

sudo rm -r .idea/

Inicie o PhpStorm e pronto

Gustavo Maimone
fonte
12

No guim de rubimina, há uma lista de ignorados (configurações / controle de versão). Talvez tente desativá-lo lá. Eu recebi a dica do pessoal de suporte.

insira a descrição da imagem aqui

manavortex
fonte
9

Adicione .idea a ~ / .gitignore_global e siga as instruções aqui para obter o funcionamento .gitignore_global:

Git global ignore não funciona

Você nunca precisará adicioná-lo a um arquivo .gitignore individual.

fosrias
fonte
8

Embora não demore muito tempo para mudar para o Rubymine, achei difícil ignorar os arquivos .idea do Rubymine que foram comprometidos com o git.

Aqui está como eu consertei

Se você não fez nenhuma preparação / confirmação, ou apenas criou um novo projeto na mina Ruby, basta fazer isso

Opção 1

Adicione a linha abaixo ao arquivo .gitignore, que geralmente é colocado na raiz do seu repositório.

# Ignore .idea files
.idea/

Isso garantirá que todos os arquivos .idea sejam ignorados e controlados pelo git, embora ainda permaneçam na pasta do projeto localmente.

opção 2

Se você fez alguma preparação / confirmação ou acabou de abrir um projeto existente na mina Ruby, basta fazer isso

Execute o código no seu terminal / linha de comando

git rm -r --cached .idea

Isso exclui os arquivos .idea já rastreados no git

Em seguida, inclua .idea / no arquivo .gitignore, que geralmente é colocado na raiz do seu repositório.

# Ignore .idea files
.idea/

Isso garantirá que todos os arquivos .idea sejam ignorados e controlados pelo git, embora ainda permaneçam na pasta do projeto localmente.

Opção 3

Se, no entanto, você fez alguma preparação / confirmação ou acabou de abrir um projeto existente na mina Ruby e deseja excluir totalmente os arquivos .idea localmente e no git, basta fazer isso

Execute o código no seu terminal / linha de comando

git rm -r --cached .idea

Isso exclui os arquivos .idea já rastreados no git

Execute o código no seu terminal / linha de comando

rm -r .idea

Isso exclui todos os arquivos .idea, incluindo a pasta localmente

Em seguida, inclua .idea / no arquivo .gitignore, que geralmente é colocado na raiz do seu repositório.

# Ignore .idea files
.idea/

Isso garantirá que todos os arquivos .idea sejam ignorados e rastreados pelo git e também excluídos da pasta do projeto localmente.

Isso é tudo

Eu espero que isso ajude

Promise Preston
fonte
4

Para mim, havia apenas uma solução para remover a pasta .idea do que confirmar o arquivo .gitignore com ".idea" e usar o IDE novamente

Ivan Petkevich
fonte
Olá! Eu tentei isso! mas o IDE não pôde recarregar meus arquivos novamente ... como você fez isso? obrigado!
YoniGeek
4

Sugiro a leitura da página de manual do git para entender completamente como ignorar o trabalho e, no futuro, você vai me agradecer;)

Relevante para o seu problema:

Two consecutive asterisks ("**") in patterns matched against full pathname may have special meaning:

A leading "**" followed by a slash means match in all directories. For example, "**/foo" matches file or directory "foo" anywhere, the same     as pattern "foo". "**/foo/bar" matches file or directory "bar" anywhere that is directly under directory "foo".

A trailing "/**" matches everything inside. For example, "abc/**" matches all files inside directory "abc", relative to the location of the .    gitignore file, with infinite depth.

A slash followed by two consecutive asterisks then a slash matches zero or more directories. For example, "a/**/b" matches "a/b", "a/x/b",     "a/x/y/b" and so on.

Other consecutive asterisks are considered invalid.
Steve Benner
fonte
4

Você pode usar o gitignore para geração avançada de arquivos do gitignore. É rápido, fácil e as tags de ponta são geradas automaticamente para você.

Use este link para a maioria dos softwares jetbrains ( intelij , phpstorm ...) arquivo .gitignore do jetbrains

[editar]

Abaixo está o arquivo gitignore gerado para o Jetbrains Softwares. Isso impedirá que você compartilhe informações confidenciais (senhas, keystores, senhas db ...) usadas por qualquer software Jetbrains para gerenciar projetos.

# Created by https://www.gitignore.io

### Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

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

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

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

O código gerado também é bem comentado. espero que ajude :)

Williem
fonte
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada.
precisa saber é o seguinte
@Himanshu O link é para um mecanismo de pesquisa de arquivos gitignore. O que você sugere que deve ser copiado para a postagem?
Dan D.
4

Eu tentei adicionar esses arquivos no meu .gitignoree era inútil ...

No entanto, como Petr Syrov disse, você pode usá-lo git rm -r --cached .ideano seu terminal e esses arquivos não serão mais um problema!

frisinacho
fonte
3

O JetBrains possui um .gitignore_global no GitHub .

Jeff Wolski
fonte
2

Que tal .idea/*? Não testou, mas deve fazê-lo

ksol
fonte
1

Use o plugin .ignore : https://plugins.jetbrains.com/plugin/7495--ignore

Ele gerencia muitos caminhos / padrões automaticamente e também possui muitos recursos extras úteis. É compatível com:

  • IntelliJ IDEA
  • PhpStorm
  • WebStorm
  • PyCharm
  • RubyMine
  • AppCode
  • CLion
  • GoLand
  • DataGrip
  • Cavaleiro
  • MPS
  • Android Studio
Mir-Ismaili
fonte
0

Se você já fez um commit inicial e possui arquivos .idea aparecendo como novos arquivos no git, será necessário remover os arquivos primeiro e depois enviá-los. As etapas a seguir farão o truque

 1. git rm --cached -r .idea/
 2. Add .idea/ to **.git/info/exclude** or **.gitignore**
 3. git commit -m 'ignore .idea/ files'

É explicado em detalhes neste link aqui: https://devconnected.com/how-to-clear-git-cache/

benitta.ruphus
fonte