cómo hacer que Git ignore los archivos .idea creados por Rubymine

185

Yo uso Rubymine para proyectos de Rails. Muy a menudo, Rubymine realiza cambios en los .idea/*archivos que no me importan. Pero sigue evitando que revise nuevas sucursales y hace que mi versión sea .idea/diferente de la de mis compañeros de trabajo.

Ya hemos añadido .idea/a .gitignore, pero mantiene el seguimiento de cambios en .idea. ¿Cómo debo hacer esto de la manera correcta?

A continuación se muestra uno de los mensajes de error típicos que recibí:

error: Your local changes to the following files would be overwritten by checkout:
    .idea/workspace.xml
AdamNYC
fuente
9
quizás ya te has comprometido; necesitas git rm; agrégalo para ignorarlo.
Kaan Yy

Respuestas:

258

simplemente .idea/funciona bien para mí

the_joric
fuente
55
¡Hola! ¿Quieres decirnos más cómo lo haces ... no me funciona? :(
YoniGeek
Git funciona un poco diferente a eso. Vea la página de manual de git para más información.
Steve Benner
44
@BradBird Lo acabo de probar, también funciona para subcarpetas. También es posible que desee probar**/.idea/
the_joric
22
Parte del problema es que si ya has organizado tus cosas, el .gitignore no te ayudará.
Dan Rosenstark
12
Pero si desea ignorar los archivos / carpetas después de agregarlos / registrarlos, debe eliminarlos con "git rm -r --cached web / uploads" (en este ejemplo, agregué la carpeta "web / uploads" a .gigignore archivo después de que se registraron) fuente: help.github.com/articles/ignoring-files
Dung
311

Intenta git rm -r --cached .ideaen tu terminal. Deshabilita el seguimiento de cambios.

Petr Syrov
fuente
2
¡Muchas gracias! ¿Pero por qué está en el caché después de que compruebo un repositorio totalmente vacío?
Budi
1
Gracias, extremadamente útil. Usé esto para eliminar los archivos, luego agregué .idea al gitignore y funcionó muy bien. Muchas gracias!
Tim R
Eso realmente no funciona cuando la carpeta .idea ya está bajo seguimiento
ACV
Entonces, si la carpeta ya está siendo rastreada en Git, agregar el .idea / a .gitignore no impedirá que Git la rastree. Primero deberá hacer "git rm -r --cached .idea", luego agregar .idea / a su .gitignore. Esto será genial para mí.
Sam003
41

Tenga en cuenta que JetBrains recomienda "Si decide compartir archivos de proyecto IDE con otros desarrolladores ...", haga un seguimiento de todos los .idea/*archivos excepto los siguientes tres archivos :

  • workspace.xml
  • use.statistics.xml
  • task.xml

Entonces, para seguir sus consejos, debe agregar esos 3 archivos a su .gitignore.


Fuente:

Si decide compartir archivos de proyecto IDE con otros desarrolladores, siga estas pautas:
...
Esto es lo que necesita compartir:

  • Todos los archivos en el directorio .idea en la raíz del proyecto, excepto los archivos workspace.xml , use.statistics.xml y task.xml que almacenan configuraciones específicas del usuario
  • ...

Cómo gestionar proyectos en Sistemas de control de versiones ( archivo )

Hay algunas notas adicionales en esa página sobre qué otros archivos usar para diferentes IDE y compilaciones de jetbrains específicos.

Daryn
fuente
10
Si bien estoy de acuerdo con esta respuesta [+1 para la corrección], creo que los equipos que no son estrictos con los IDE y que pueden salirse con la suya al no registrar la .ideacarpeta en absoluto ... Nunca tiene sentido para mí, archivos siempre hay conflicto por razones que no tienen sentido.
JaKXz
66
Es una mala práctica comprometer archivos específicos de IDE. Una razón es que diferentes desarrolladores pueden usar diferentes herramientas. Otra es que esos archivos pueden contener una configuración específica del usuario que tendrá conflictos todo el tiempo.
Jordan Silva
2
Esta recomendación es una mala práctica. Usarlo en un proyecto es la mejor manera de versionar archivos que contienen información específica del usuario, como la ruta absoluta ... Solo mire dentro de su .ideacarpeta antes de seguir este reco.
JBE
1
Si bien estoy de acuerdo en que cometer archivos IDE a ciegas siempre es una mala idea, porque cometer algo a ciegas es una mala idea. En algunas circunstancias, compartir archivos IDE puede funcionar bien. Es conceptualmente similar a compartir archivos de orquestación de contenedores en que son una forma de ejecutar aplicaciones. Al igual que los archivos IDE, son una forma de desarrollar el proyecto y pueden contener definiciones útiles, como cómo ejecutar las pruebas unitarias o los comandos de cobertura de código, perfectamente empaquetados para un IDE específico. La mayoría de los .ideaarchivos (al menos en PyCharm) están diseñados para ser compartidos.
Samuel Harmer
26

Agregue .idea/*a su lista de exclusión para evitar el seguimiento de todos los archivos .idea, directorios y recursos secundarios.

Percepción
fuente
24

si Git ya está rastreando un archivo, agregar el archivo a .gitignore no impedirá que Git lo rastree. Primero deberá hacer git rm los archivos ofensivos y luego agregarlos a su .gitignore.

Agregar .idea / debería funcionar

appsmatics
fuente
¡Esta debería ser la respuesta más completa!
Sam003
21

usar git rm -r --cached .ideaen su terminal funcionó muy bien para mí. Deshabilita el seguimiento de cambios y desarma una cantidad de archivos en la carpeta rubymine (idea /) que luego podría agregar y comprometer a git, eliminando así la comparación y permitiendo que funcione la configuración de gitignore .idea/.

GMarx
fuente
13

Cerrar PHP Storm en la terminal ir al tipo de carpeta del proyecto

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

Luego vaya a la carpeta del proyecto y elimine la carpeta .idea

sudo rm -r .idea/

Inicie PhpStorm y ya está

Gustavo Maimone
fuente
12

En la interfaz gráfica de usuario de Rubymine, hay una lista de ignorados (configuración / control de versiones). Tal vez intente deshabilitarlo allí. Recibí la pista de su apoyo chicos.

ingrese la descripción de la imagen aquí

manavortex
fuente
9

Agregue .idea a ~ / .gitignore_global y siga las instrucciones aquí para que funcione .gitignore_global:

Git global ignore no funciona

Entonces no tiene que agregarlo nunca a un archivo .gitignore individual.

fosrias
fuente
8

Si bien no pasó mucho tiempo que cambié a Rubymine, me resultó difícil ignorar que los archivos .idea de Rubymine se habían comprometido con git.

Así es como lo arreglé

Si no ha realizado ninguna puesta en escena / compromiso, o si acaba de lanzar un nuevo proyecto en la mina Ruby, simplemente haga esto

Opción 1

Agregue la siguiente línea al archivo .gitignore que generalmente se coloca en la raíz de su repositorio.

# Ignore .idea files
.idea/

Esto garantizará que git ignore todos los archivos .idea, aunque seguirán en su carpeta de proyecto localmente.

opcion 2

Sin embargo, si ha realizado alguna puesta en escena / confirmación, o acaba de abrir un proyecto existente en la mina Ruby, simplemente haga esto

Ejecute el código en su terminal / línea de comando

git rm -r --cached .idea

Esto elimina archivos .idea ya rastreados en git

Luego, incluya .idea / en el archivo .gitignore que generalmente se ubica en la raíz de su repositorio.

# Ignore .idea files
.idea/

Esto garantizará que git ignore todos los archivos .idea, aunque seguirán en su carpeta de proyecto localmente.

Opción 3

Sin embargo, si ha realizado alguna puesta en escena / confirmación, o si acaba de abrir un proyecto existente en la mina Ruby y desea eliminar totalmente los archivos .idea localmente y en git, simplemente haga esto

Ejecute el código en su terminal / línea de comando

git rm -r --cached .idea

Esto elimina archivos .idea ya rastreados en git

Ejecute el código en su terminal / línea de comando

rm -r .idea

Esto elimina todos los archivos .idea, incluida la carpeta localmente

Luego, incluya .idea / en el archivo .gitignore que generalmente se ubica en la raíz de su repositorio.

# Ignore .idea files
.idea/

Esto asegurará que todos los archivos .idea sean ignorados desde el seguimiento por git, y también eliminados localmente de la carpeta de su proyecto.

Eso es todo

espero que esto ayude

Promesa Preston
fuente
4

Para mí, solo había una solución para eliminar la carpeta .idea que confirmar el archivo .gitignore con ".idea" y usar IDE nuevamente

Ivan Petkevich
fuente
¡Hola! Intenté esto! pero el IDE no pudo volver a cargar mis archivos de nuevo ... ¿cómo hiciste esto? ¡Gracias!
YoniGeek
4

Sugiero leer la página de manual de git para comprender completamente cómo ignorar el trabajo, y en el futuro me lo agradecerás;)

Relevante para su 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
fuente
4

Puede usar gitignore para la generación avanzada de archivos gitignore. Es rápido, fácil y las etiquetas de vanguardia se generan automáticamente para usted.

Utilice este enlace para la mayoría de los softwares de jetbrains ( intelij , phpstorm ...) archivo .gitignore de jetbrains

[editar]

A continuación se muestra el archivo gitignore generado para los softwares Jetbrains, esto evitará que comparta información confidencial (contraseñas, almacenes de claves, contraseñas db ...) utilizada por cualquiera de los software de Jetbrains para administrar proyectos.

# 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

El código generado también está bien comentado. espero que ayude :)

Williem
fuente
Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia.
Himanshu
@Himanshu El enlace es a un motor de búsqueda de archivos gitignore. ¿Qué sugieres que se copie en la publicación?
Dan D.
4

Traté de agregar esos archivos en mi .gitignorey fue inútil ...

Sin embargo, como dijo Petr Syrov , ¡puede usarlo git rm -r --cached .ideaen su terminal y esos archivos ya no serán un problema!

frisinacho
fuente
2

¿Qué hay de .idea/*? No probé, pero debería hacerlo

ksol
fuente
1

Utilice el complemento .ignore : https://plugins.jetbrains.com/plugin/7495--ignore

Gestiona muchos caminos / patrones automáticamente y también tiene muchas características adicionales útiles. Es compatible con:

  • IDEA IntelliJ
  • PhpStorm
  • Tormenta web
  • PyCharm
  • RubyMine
  • AppCode
  • CLion
  • GoLand
  • DataGrip
  • Jinete
  • MPS
  • Android Studio
Mir-Ismaili
fuente
0

Si ya ha realizado una confirmación inicial y tiene archivos .idea que se muestran como archivos nuevos en git, primero deberá eliminar los archivos y luego confirmarlos. Los siguientes pasos harán el truco

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

Se explica en detalle en este enlace aquí: https://devconnected.com/how-to-clear-git-cache/

benitta.ruphus
fuente