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

9
quizás ya te has comprometido; necesitas git rm; agrégalo para ignorarlo.
Kaan Yy

Respuestas:


258

simplemente .idea/funciona bien para mí


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.


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.


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.


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


¡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/.


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á


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í


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.


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


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


¡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.

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 :)


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!



2

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


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

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/

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.