Pregunta ¿Qué debería estar en mi .gitignore para un proyecto de Android Studio?


Qué archivos deberían estar en mi .gitignore para un proyecto de Android Studio?

He visto varios ejemplos que incluyen todos .iml pero IntelliJ dice que .iml debe estar incluido en su control de origen.


1056
2018-05-24 14:04


origen


Respuestas:


Actualizado a Android Studio 3.0 Por favor comparte los elementos faltantes en los comentarios.

Una respuesta tardía pero ninguna de las respuestas aquí y aquí tenía razón en el dinero para nosotros ...

Entonces, aquí está nuestro archivo de gitignore:

#built application files
*.apk
*.ap_

# 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, se crean nuevos proyectos con este archivo gitignore:

*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

Obsoleto - para el formato de proyecto anterior, agregue esta sección a su archivo de 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:

  1. Desde la versión 0.3+ parece que puedes comprometer y empujar * .iml y build.gradle archivos. Si su proyecto se basa en Gradle: en el nuevo cuadro de diálogo abrir / importar, debe verificar "use auto import" casilla de verificación y marque la "use default gradle wrapper (recommended)" boton de radio. Todas las rutas son ahora relativas, como sugirió @George.

  2. Respuesta actualizada según @ 128KB fuente adjunta y sugerencias de @Skela


1148
2017-07-23 07:29



Sobre la base de mi Android normal .gitignore, y después de leer la documentación en el sitio web de Intellij IDEA y leer publicaciones en StackOverflow, he construido 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 archivos nativos construidos la sección es útil principalmente cuando construyes tu propio código nativo con Android NDK. Si, por otro lado, está utilizando una biblioteca de terceros que incluye estos archivos, puede eliminar estas líneas (* .o y * .so) de su .gitignore.


137
2018-01-10 16:23



Actualizado el 7/2015:

Aquí está el fuente definitiva de JetBrains


Formato de proyecto basado en directorio (directorio .idea)

Este formato es utilizado por todas las versiones recientes de IDE por defecto. Esto es lo que necesita compartir:

  • Todos los archivos bajo .idea directorio en la raíz del proyecto excepto el workspace.xml y tasks.xml archivos que almacenan configuraciones específicas del usuario
  • Todos .iml archivos de módulo que pueden ubicarse en diferentes directorios de módulos (se aplica a IntelliJ IDEA)

Ten cuidado acerca de compartir lo siguiente:

  • Artefactos de Android que producen una compilación firmada (contendrán contraseñas de almacén de claves)
  • En IDEA 13 y antes dataSources.ids, datasources.xml puede contener contraseñas de base de datos. IDEA 14 resuelve este problema.

Puede considerar no compartir lo siguiente:

  • gradle.xml file, see esta discusión
  • carpeta de diccionarios del usuario (para evitar conflictos si otro desarrollador tiene el mismo nombre)
  • Archivos XML bajo .idea/libraries en caso de que sean generado desde Gradle proyecto

Formato del proyecto heredado (.ipr/.iml/.iws archivos)

  • Comparte el proyecto .ipr archivo y todo el .imlarchivos de módulo, no compartir el .iws archivo ya que almacena configuraciones específicas del usuario

Si bien estas instrucciones son para IntelliJ IDEA, son verdaderas 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

70
2017-08-26 22:45



No estoy de acuerdo con todas estas respuestas. La siguiente configuración funciona muy bien para la aplicación de nuestra organización.

Yo ignoro:

  • /build
  • /.idea (con posibles excepciones, vea los comentarios en respuesta de dalewking)
  • *.iml
  • local.properties

Creo que casi todos están de acuerdo /build.

Me cansé de ver constantemente mensajes sobre los diversos library.xml archivos que Gradle crea o elimina en /.idea. los build.gradle se ejecutará en el local del desarrollador cuando primero verifiquen el proyecto, entonces, ¿por qué esos archivos XML deben ser versionados? Android Studio también generará el resto de /.idea cuando un desarrollador crea un proyecto usando Check out from Version Control, entonces, ¿por qué hay algo en esa carpeta que deba versionarse?

Si el *.iml se versiona un nuevo usuario tendrá que nombrar el proyecto exactamente igual que cuando se cometió. Como este es también un archivo generado, ¿por qué versionarlo en primer lugar?

los local.properties archivos apunta a una ruta absoluta en el sistema de archivos para el SDK, por lo que definitivamente no debe ser versionada.

Editar 1: Adicional .gradle ignorar las cosas del almacenamiento en caché de gradle que no deberían ser versionadas (gracias Vasily Makarov)

Editar 2: Adicional .DS_Store ahora que estoy usando Mac. Esta carpeta es específica de Mac y debería no ser versionado

Nota adicional: Probablemente también desee agregar un directorio para colocar sus claves de firma al compilar una versión de lanzamiento.

Para la conveniencia de copiar / pegar:

.gradle
/build
/.idea
*.iml
local.properties
.DS_Store 

34
2017-07-10 14:57



Yo uso este .gitignore. Lo encontré en: http://th4t.net/android-studio-gitignore.html

*.iml
*.iws
*.ipr
.idea/
.gradle/
local.properties

*/build/

*~
*.swp

32
2018-05-21 10:53



En el caso de Android Studio, los únicos archivos que se deben guardar en el control de la versión son los archivos necesarios para compilar la aplicación desde la línea de comando usando gradle. Entonces puedes ignorar:

  • * .iml
  • .idea
  • construir

Sin embargo, si guarda cualquier configuración IDE, como la configuración de estilo de código personalizado, se guardan en la carpeta .idea. Si desea esos cambios en el control de la versión, también debe guardar los archivos IDEA (* .iml y .idea).


30
2018-05-24 15:11



Mi consejo sería también no ignorar la carpeta .idea.

Importé un proyecto de Eclipse basado en Git para Android Studio y todo salió bien. Más tarde, quería importar este proyecto con Git (como la primera vez) a otra máquina con Android Studio, pero eso no funcionó. Android Studio cargó todos los archivos pero no pudo "ver" el proyecto como un proyecto. Solo podría abrir archivos Git.

Al importar el proyecto por primera vez (de Eclipse a Android Studio) mi viejo .gitignore fue sobrescrito y el nuevo se veía así:

  • .idea / .name
  • .idea / compiler.xml
  • .idea / copyright / profiles_settings.xml
  • .idea / encodings.xml
  • .idea / libraries / libs.xml
  • .idea / misc.xml
  • .idea / modules.xml
  • .idea / scopes / scope_settings.xml
  • .idea / vcs.xml
  • .idea / workspace.xml

Entonces, traté de usar un gitignore vacío y ahora funcionó. El otro Android Studio podría cargar los archivos y el Proyecto. Supongo que algunos archivos no son importantes (profiles_settings.xml) para Git e importación, pero estoy feliz de que funcionó.


16
2018-06-21 00:35



Para proyectos de Android Studio 3.0, use lo siguiente:

.gitignore

.gradle
.idea
*.iml
gradle.properties
local.properties
.DS_Store
build

Carpeta del proyecto Gradle

Lo único que debería estar en su carpeta de proyecto (Gradle) después de la clonación del repositorio es esta estructura (al menos para los casos de uso que he encontrado hasta ahora):

/app
/gradle
.gitignore
build.gradle
build.properties
gradlew
gradle.bat
settings.gradle

11
2018-06-30 12:06