¿Qué debería haber en mi .gitignore para un proyecto de Android Studio?
¿ Qué archivos deberían estar en mi .gitignore
proyecto de Android Studio?
He visto varios ejemplos que incluyen .iml
, pero los documentos de IntelliJ dicen que .iml
deben incluirse en su control de fuente.
Actualizado a Android Studio 3.0 Comparta los elementos que faltan en los comentarios.
Una respuesta tardía pero esta respuesta alternativa no era la adecuada para nosotros...
Entonces, aquí está nuestro archivo gitignore:
#built application files
*.apk
*.ap_
*.aab
# files for the dex VM
*.dex
# Java class files
*.class
# generated files
bin/
gen/
# Local configuration file (sdk path, etc)
local.properties
# Windows thumbnail db
Thumbs.db
# OSX files
.DS_Store
# Android Studio
*.iml
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/
.navigation
captures/
output.json
#NDK
obj/
.externalNativeBuild
Desde Android Studio 2.2 y hasta 3.0, los nuevos proyectos se crean con este archivo gitignore:
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
En desuso : para formatos de proyecto más antiguos, agregue esta sección a su archivo gitignore:
/*/out
/*/*/build
/*/*/production
*.iws
*.ipr
*~
*.swp
Este archivo debe estar ubicado en la carpeta raíz del proyecto y no dentro de la carpeta del módulo del proyecto.
Editar notas:
Desde la versión 0.3+, parece que puedes confirmar y enviar archivos * .iml y build.gradle . Si su proyecto se basa en Gradle: en el nuevo cuadro de diálogo abrir/importar, debe marcar la
"use auto import"
casilla de verificación y marcar el"use default gradle wrapper (recommended)"
botón de opción. Todas las rutas ahora son relativas como sugirió @George.Respuesta actualizada según la fuente adjunta de @128KB y las sugerencias de @Skela
Partiendo de mi .gitignore normal de Android , y después de leer la documentación en el sitio web de Intellij IDEA y leer las publicaciones en StackOverflow, construí el siguiente archivo:
# built application files
*.apk
*.ap_
# files for the dex VM
*.dex
# Java class files
*.class
# built native files (uncomment if you build your own)
# *.o
# *.so
# generated files
bin/
gen/
# Ignore gradle files
.gradle/
build/
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
proguard/
# Eclipse Metadata
.metadata/
# Mac OS X clutter
*.DS_Store
# Windows clutter
Thumbs.db
# Intellij IDEA (see https://intellij-support.jetbrains.com/entries/23393067)
.idea/workspace.xml
.idea/tasks.xml
.idea/datasources.xml
.idea/dataSources.ids
También tenga en cuenta que, como se señaló, la sección de archivos nativos creados es principalmente útil cuando crea su propio código nativo con el NDK de Android. Si, por otro lado, estás utilizando una biblioteca de terceros que incluye estos archivos, es posible que desees eliminar estas líneas (*.o y *.so) de tu .gitignore.
Actualizado el 7/2015:
Aquí está la fuente definitiva de JetBrains
Formato de proyecto basado en directorio (directorio .idea)
Este formato lo utilizan todas las versiones recientes de IDE de forma predeterminada. Esto es lo que necesitas compartir:
- Todos los archivos del
.idea
directorio en la raíz del proyecto, excepto los archivosworkspace.xml
ytasks.xml
que almacenan configuraciones específicas del usuario. - Todos los
.iml
archivos del módulo que se pueden ubicar en diferentes directorios del módulo (se aplica a IntelliJ IDEA)
Tenga cuidado al compartir lo siguiente:
- Artefactos de Android que producen una compilación firmada (contendrán contraseñas del almacén de claves)
- En IDEA 13 y anteriores
dataSources.ids
,datasources.xml
puede contener contraseñas de bases de datos. La IDEA 14 resuelve este problema .
Puede considerar no compartir lo siguiente:
- archivo gradle.xml, vea esta discusión
- Carpeta de diccionarios de usuario (para evitar conflictos si otro desarrollador tiene el mismo nombre)
- Archivos XML
.idea/libraries
en caso de que se generen a partir del proyecto Gradle
Formato de proyecto heredado ( // .ipr
archivos ).iml
.iws
- Comparta el
.ipr
archivo del proyecto y todos los.iml
archivos del módulo, no comparta el.iws
archivo ya que almacena configuraciones específicas del usuario.
Si bien estas instrucciones son para IntelliJ IDEA, son válidas al 100 % para Android Studio.
Aquí hay un .gitignore
fragmento que incorpora todas las reglas anteriores:
# Android Studio / IntelliJ IDEA
*.iws
.idea/libraries
.idea/tasks.xml
.idea/vcs.xml
.idea/workspace.xml