
Para muchos desarrolladores, la carpeta .idea en Android Studio siempre fue como una caja negra para mí: sabía que existía, sabía que siempre se agregaba a .gitignore, pero decidí averiguar por qué necesitaban esos u otros archivos y carpetas, para que tenga la oportunidad de manejar los conflictos de git que a veces surgen, y para saber exactamente qué archivo se puede agregar de manera segura a .gitignore y cuál no.
Lo descubrí en el ejemplo del proyecto en el que estoy trabajando. Y decidí compartir el resultado de lo que descubrí, porque No encontré ninguna documentación sobre esto.
indica la ruta que se agregará a .gitignore
indica la ruta que Android Studio ya ha agregado a .gitignore
, y no debe .gitignore
.
indica la ruta que debes almacenar en git.
assetWizardSettings.xml
Este archivo almacena el último icono agregado usando la interfaz de Android Studio. Se puede eliminar de forma segura de VCS.

cachés
Los cachés, como su nombre lo indica, se pueden agregar de forma segura a .gitignore
.
No veo ninguna razón para mantenerlo en VCS, pero por defecto esta carpeta no se agrega a .gitignore
.
cachés / build_file_checksums.ser
De hecho, este archivo es una instancia serializada de ProjectBuildFilesChecksums .
El archivo es necesario para verificar si build.gradle
, settings.gradle
, local.properties
, ~/.gradle/gradle.properties
, gradle.properties
o los archivos build.gradle
de sus módulos han build.gradle
.
Android Studio usa este archivo para decirle que necesita sincronizar archivos gradle.
codeStyles
Esta carpeta contiene la configuración del estilo del código del proyecto. Es útil versionarlo si ha cambiado los estilos de código predeterminados.
diccionarios
La carpeta contiene la entrada que agregó al diccionario para verificar el código. Este diccionario es importante si tiene reglas estrictas en su sistema de CI.
gradle.xml
Recomiendo eliminar este archivo de git. Puede contener la ruta local a su versión de gradle, así como la ruta a su módulo. Por ejemplo, puede desarrollar un módulo en un repositorio separado, por lo que la ruta al módulo puede ser específica para cada usuario.
Por todas estas razones, gradle.xml
permanentemente el archivo gradle.xml
de VCS.
inspecciónPerfiles
Esta carpeta contiene reglas de pelusa específicas para su proyecto. Por lo tanto, al igual que la carpeta de dictionaries
, debe almacenarse en git.
bibliotecas
Contiene un archivo que indica dónde se almacenan los archivos jar de sus bibliotecas. Dado que la ruta de descarga puede ser específica para cada usuario, no debe almacenar esta carpeta en VCS.
misc.xml
El archivo contiene información sobre el proyecto: versión de Java, tipo de proyecto, etc.
Esta información pertenece al proyecto y no depende del usuario. Por lo tanto, debe almacenarse en git.
modules.xml
Este archivo contiene las rutas a los archivos .iml
de sus módulos. Por lo tanto, por analogía con gradle.xml
no se puede almacenar en git.
navEditor.xml
Aquí es donde se almacenan sus elementos en el editor de navegación . Si esta información es relevante para su proyecto, entonces debe guardar este archivo en git. De lo contrario, siéntase libre de agregarlo a .gitignore
para evitar futuros conflictos.
runConfigurations.xml
El nombre del archivo puede indicarle que contiene configuraciones que puede agregar haciendo clic en "Cambiar configuraciones". Este archivo debe almacenarse en VCS.

vcs.xml
Este archivo contiene información sobre VCS que utiliza en su proyecto. Se utiliza para que pueda usar la interfaz gráfica para realizar operaciones de control de versiones. También vale la pena agregar a git.
workspace.xml
Contiene información sobre su espacio de trabajo en Android Studio. Por ejemplo, la última posición del cursor en el archivo que abre. Así que esta es definitivamente información del usuario que no hay necesidad de almacenar en git.
Resumen
Sugeriría que agregue solo tres líneas al archivo .gitignore
predeterminado:
/.idea/assetWizardSettings.xml /.idea/gradle.xml /.idea/caches # Uncomment next line if keeping position of elements in Navigation Editor is not relevant for you # /.idea/navEditor.xml
Como dije al comienzo de este artículo, no encontré ninguna documentación sobre el contenido de la carpeta .idea
, por lo que el artículo puede estar incompleto y / o no ser 100% exacto. Si sabes algo más que no está en este artículo, escríbelo en los comentarios.