iniciar - repositorios git




¿Qué archivos en la carpeta.idea deben ser rastreados por Git? (4)

Después de una investigación, encontré el siguiente archivo .idea/.gitignore :

# ignore all .idea files ...
*
# except  ...

# Version Control configuration
!vcs.xml

# how IDEA should treat the text files
!encodings.xml

# automatic code formatting
!codeStyleSettings.xml

# project specific words
!dictionaries

!copyrights
!misc.xml
!sqldialects.xml

Los archivos anteriores deben ser prácticamente idénticos para todos los miembros del equipo.

respuesta: se me ocurrió esto: https://github.com/salarmehr/idea-gitignore

A diferencia de Netbeans, en los IDE de Jetbrains, los archivos de configuración relacionados con el usuario y el equipo se mezclan en la misma carpeta, lo que hace que sea difícil cuando se necesita presionarlos a git.

Hay una serie de archivos de ejemplo de ignorar git para estos IDE y https://intellij-support.jetbrains.com/hc/articles/206544839 página en el sitio de git.

Sin embargo, después de usarlos durante un mes, descubrimos que es más seguro y más conveniente hacer lo contrario. Me refiero a ignorar todos los archivos .idea y agregar explícitamente solo la configuración relacionada con el equipo. (En lugar de agregar todo e ignorar algunos).

Lo principal que se puede compartir entre los desarrolladores es configuraciones de estilo de código. Por lo tanto, al utilizar la opción de cambio de formato automático de IDE, todo el equipo seguirá un estilo coherente.

Además de eso, la pregunta es: ¿qué otros archivos se recomiendan para que se incluyan y no se ignoren? ¿Por qué?

respuesta: se me ocurrió esto: https://github.com/salarmehr/idea-gitignore


Jetbrains tiene una guía oficial sobre qué archivos no deben ser registrados y qué archivos probablemente no deberían ser registrados, dependiendo de su uso. De acuerdo con esa página, debe registrar todos los archivos en el directorio .idea , excepto:

  • workspace.xml
  • tasks.xml

Y probablemente también:

  • Los archivos xml en el subdirectorio del dictionary

Si bien la respuesta particular puede depender de las prácticas particulares de su equipo, según mi experiencia, seguir esa guía generalmente resulta en una correcta separación de la configuración del usuario y la configuración compartida del proyecto.

Algunos ejemplos de archivos que deben compartirse, de acuerdo con esta guía:

  • ant.xml , que, si usa Ant para compilar su proyecto, apunta IDEA a sus archivos de compilación y configura las propiedades que se deben usar para compilar.
  • vcs.xml , que especifica la configuración de Control de versión para su proyecto
  • encodings.xml , que especifica cómo IDEA debe tratar los archivos de texto en su proyecto
  • modules.xml , que señala IDEA a cada uno de los archivos de configuración del módulo de su proyecto, que también deben compartirse en su VCS.
  • todos los archivos bajo el subdirectorio runConfigurations , que le dice a IDEA lo que debe hacer para ejecutar su aplicación
  • codeStyleSettings.xml , que, como ha codeStyleSettings.xml , pone a todo su equipo en la misma página en términos de formato de código automático

Dependiendo del uso de su equipo, puede haber más o menos, pero esos son algunos de los ejemplos más grandes.


Se recomienda no confirmar todas las carpetas .idea porque son para configuraciones. Como el archivo *.iml .

Si uso Netbeans en lugar de Intellij, no quiero estos archivos de configuración. Es inútil y quizás un poco peligroso para los conflictos.


Utilizo tanto IDEA como Eclipse, pero no Netbeans. Nunca confío ningún archivo de proyecto, pero me aseguro de tener una compilación de Maven como herramienta principal, luego puedo importar fácilmente el proyecto de Maven en cualquier IDE con soporte de Maven y también actualizar desde Maven una vez que lo cambie. Para Eclipse e IDEA esto funciona a la perfección.

Mi archivo .gitignore tiene este aspecto para todos mis proyectos:

# Eclipse
.settings/
.classpath
.project

# IntelliJ IDEA
.idea/
*.iml

# Maven
target/

Además de otros, archivos o directorios específicos del proyecto.





ignore