¿Qué archivos deben estar en mi .gitignore
para un proyecto de Android Studio?
He visto varios ejemplos que incluyen todos, .iml
pero los documentos de IntelliJ dicen que .iml
deben incluirse en su control de origen.
git
android-studio
gitignore
respectTheCode
fuente
fuente
Respuestas:
Actualizado a Android Studio 3.0. Comparta los elementos faltantes en los comentarios.
Una respuesta tardía pero ninguna de las respuestas aquí y aquí fue correcta para nosotros ...
Entonces, aquí está nuestro archivo gitignore:
Desde Android Studio 2.2 y hasta 3.0, se crean nuevos proyectos con este archivo gitignore:
Desaprobado : para el formato de proyecto anterior, agregue esta sección a su archivo gitignore:
Este archivo debe ubicarse 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 puede 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 . Todos los caminos ahora son relativos como sugirió @George.Respuesta actualizada de acuerdo con la fuente adjunta @ 128KB y las sugerencias de @Skela
fuente
.iml
archivos a menos que wa no para hacer frente a molestias innecesarias si otros usuarios mencionar el proyecto de manera diferente cuando se echa un vistazo.Basándome en 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:
También tenga en cuenta que, como se señaló, la sección de archivos nativos creados es principalmente útil cuando está creando su propio código nativo con el NDK de Android. Si, por otro lado, está utilizando una biblioteca de terceros que incluye estos archivos, es posible que desee eliminar estas líneas (* .o y * .so) de su .gitignore.
fuente
.idea/libraries
? ¿Deberían ser compartidos o excluidos en su opinión?Actualizado 7/2015:
Aquí está la 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 necesitas compartir:
.idea
directorio en la raíz del proyecto, excepto los archivosworkspace.xml
ytasks.xml
que almacenan configuraciones específicas del usuario.iml
archivos de módulos que se pueden ubicar en diferentes directorios de módulos (se aplica a IntelliJ IDEA)Tenga cuidado al compartir lo siguiente:
dataSources.ids
,datasources.xml
puede contener contraseñas de bases de datos. IDEA 14 resuelve este problema .Puede considerar no compartir lo siguiente:
.idea/libraries
en caso de que se generen a partir del proyecto GradleFormato de proyecto heredado (
.ipr
/.iml
/.iws
archivos).ipr
archivo del proyecto y todos los.iml
archivos del módulo, no comparta el.iws
archivo ya que almacena configuraciones específicas del usuarioSi bien estas instrucciones son para IntelliJ IDEA, son 100% verdaderas para Android Studio.
Aquí hay un
.gitignore
fragmento que incorpora todas las reglas anteriores:fuente
<orderEntry type="jdk" jdkName="1.6 (38)" jdkType="JavaSDK" />
Observe el número 38 que parece estar aumentando constantemente. (El archivo misc.xml también tiene este problema).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 la respuesta de dalewking )*.iml
local.properties
Creo que casi todos están de acuerdo
/build
.Me
library.xml
cansé de ver constantemente mensajes sobre los diversos archivos que Gradle crea o elimina/.idea
. Sebuild.gradle
ejecutará en el local de los desarrolladores cuando revisen por primera vez el proyecto, entonces, ¿por qué esos archivos XML necesitan ser versionados? Android Studio también generará el resto de/.idea
cuando un desarrollador cree un proyecto usandoCheck out from Version Control
, entonces, ¿por qué es necesario versionar algo en esa carpeta?Si
*.iml
se versiona, un nuevo usuario tendrá que nombrar el proyecto exactamente igual que cuando se confirmó. Dado que este también es un archivo generado, ¿por qué versionarlo en primer lugar?Los
local.properties
archivos apuntan a una ruta absoluta en el sistema de archivos para el SDK, por lo que definitivamente no se debe versionar.Edición 1 : se agregó
.gradle
para ignorar las cosas de almacenamiento en caché de gradle que no se deben versionar (gracias Vasily Makarov ).Edición 2 : Agregado
.DS_Store
ahora que estoy usando Mac. Esta carpeta es específica de Mac y no debe ser versionada.Nota adicional : Probablemente también desee agregar un directorio para colocar sus claves de firma al crear una versión de lanzamiento.
Para conveniencia de copiar / pegar :
fuente
build/
lugar de/build
para hacer coincidir los directorios de compilación del módulo comoapp/build
. Se usa.gradle
para hacer coincidir el directorio de almacenamiento en caché de gradle..gitignore
archivo en mi directorio de aplicaciones que también contiene/build
. ¿Es esto generado automáticamente, no puedo recordar? Entoncesbuild/
, ¿ se aplicará a las subcarpetas?Yo uso este .gitignore. Lo encontré en: http://th4t.net/android-studio-gitignore.html
fuente
En el caso de Android Studio, los únicos archivos que deben guardarse en el control de versiones son los archivos necesarios para construir la aplicación desde la línea de comandos usando gradle. Entonces puedes ignorar:
Sin embargo, si guarda cualquier configuración de IDE, como la configuración de estilo de código personalizado, se guardarán en la carpeta .idea. Si desea esos cambios en el control de versiones, también guardaría los archivos IDEA (* .iml y .idea).
fuente
Android Studio 3.4
Si crea un proyecto Gradle con Android Studio, el
.gitignore
archivo contendrá lo siguiente:.gitignore
Recomendaría ignorar el directorio completo ".idea" porque contiene configuraciones específicas del usuario, nada importante para el proceso de compilación.
Carpeta de 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 encontré hasta ahora):
Se recomienda verificar los scripts de envoltura de gradle (ver aquí ).
fuente
Mi consejo también sería no ignorar la carpeta .idea.
Importé un proyecto Eclipse basado en Git a 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 pude abrir archivos Git.
Al importar el proyecto por primera vez (desde Eclipse a Android Studio), mi antiguo .gitignore se sobrescribió y el nuevo se veía así:
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 y la importación, pero estoy feliz de que funcionó.fuente
Es la mejor manera de generar a
.gitignore
través de aquí.fuente
NO NECESITA agregar al control de origen ninguno de los siguientes:
Por lo tanto, puede configurar hgignore o gitignore en consecuencia.
La primera vez que un desarrollador clona el control de origen puede ir:
Eso es todo
PD: Android Studio luego, a través de Maven, obtendrá el complemento de Gradle suponiendo que su build.gradle es similar a esto:
Android Studio generará el contenido de la carpeta .idea (incluido el workspace.xml, que no debería estar en el control de origen porque se genera ) y la carpeta .gradle.
Este enfoque es amigable con Eclipse en la forma en que el control de fuente realmente no sabe nada sobre Android Studio. Android Studio solo necesita build.gradle para importar un proyecto y generar el resto.
fuente
There is NO NEED
Sí, hay algunos casos: plantillas de derechos de autor que deben compartirse entre los miembros del equipo, por ejemplo.Apoyo la confirmación de la carpeta .idea (excluyendo
workspace.xml
ytasks.xml
). Pero estoy empezando a llegar a la conclusión de que los archivos .iml deben ignorarse.Aquí está el problema:
Abra un proyecto en un directorio llamado "foo", por ejemplo, y obtendrá foo.iml y todo parece estar bien. El problema es que si simplemente cambio el nombre del directorio a foo2 (o lo clono en otro nombre de directorio) cuando intente abrir el proyecto en Android Studio, obtendrá tres cosas:
No puedo encontrar ninguna manera de evitar que Android Studio realice esta generación de archivos iml cuando el proyecto se almacena en un directorio diferente. Agregarlos al control de origen va a causar problemas. Por lo tanto, creo que quizás deberíamos ignorar los archivos * .iml y
.idea/modules.xml
fuente
/.idea
y los.iml
archivos. Me gustaría saber por qué se.idea
debe confirmar la carpeta.library.xml
archivos que seguían disparando mensajes. Además, no entiendo por qué sigo viendo a la gente decir que los archivos * .iml deberían incluirse, por lo que es un gran punto allí.Probado con Android Studio 3.0
Es posible que deba instalar el complemento .ignore .
Puede generar automáticamente el archivo .gitignore para Android. Haga clic derecho en la carpeta y siga
Luego seleccione Android desde el panel izquierdo y haga clic en Generar
Android Studio generará un archivo .gitignore que contiene todo el archivo que debe ignorar.
Tomado de http://menukanows.com/how-to-add-gitignore-file-in-android-project/
fuente
Depende de cómo se mantenga el formato de su proyecto:
Tienes dos opciones:
.idea
carpeta que contiene los archivos específicos del proyecto).iws
y.ipr
)Ref: http://www.jetbrains.com/idea/webhelp/project.html
Los archivos comprometidos con el control de versiones dependen de lo anterior:
workspace.xml
ytasks.xml
.ipr
archivo de control de versiones y todos los.iml
archivos del módulo excluyen el.iws
archivo ya que almacena configuraciones específicas del usuario.Ref: https://intellij-support.jetbrains.com/entries/23393067
fuente
Básicamente cualquier archivo que se regenera automáticamente.
Una buena prueba es clonar su repositorio y ver si Android Studio puede interpretar y ejecutar su proyecto de inmediato (generando lo que falta).
Si no, encuentre lo que falta y asegúrese de que no se ignore, sino que se agregue al repositorio.
Dicho esto, puede tomar ejemplo en
.gitignore
archivos existentes , como el de Android .fuente
Soy kosher al agregar los archivos .iml e Intellij sez para agregar la carpeta .idea pero ignoro .idea / workspace.xml y .idea / task.xml, pero ¿qué pasa con .idea / bibliotecas /?
No veo cómo tiene sentido agregar esto. Tiene una lista de archivos XML que enumeran las bibliotecas que el proyecto de Android Studio debe conocer. En su lugar, se supone que provienen de dependencias definidas build.gradle, no de un archivo de proyecto IDE.
También el contenido de uno de estos archivos se ve así:
No tiene sentido cometer esto. ¿Qué sucede si el usuario especificó un directorio de inicio diferente para gradle, o si usa una versión de gradle diferente, la ruta debajo
.gradle/caches/artifacts-xxx
será diferente para ellos (es decir,artifacts-
el número agregado al final se relacionará con la versión de gradle que está utilizando). ) ¿Estos caminos no son universales y, sin embargo, el consejo es verificar todo esto?fuente
A partir de Android Studio, el
.gitignore
archivo 0.8.4 se genera automáticamente al iniciar un nuevo proyecto. Por defecto contiene:fuente
Sé que este es un tema antiguo y ciertamente hay muchas opciones, pero realmente prefiero
gibo
Simon Whitaker. Es súper simple de usar, multiplataforma (mac, * nix y windows), y usa elgitignore
repositorio de github por lo que (básicamente) siempre está actualizado.Asegúrese de que su caché local esté actualizada:
Busque el idioma / tecnología que necesita:
Mostrar el archivo .gitignore:
Ahora, añádelo al archivo .gitignore de tu proyecto:
(Asegúrese de usarlo
>>
para adjuntarlo al archivo .gitignore de su proyecto; uno>
lo sobrescribirá, ¡como lo he hecho muchas veces por accidente!)Sé que esto no responde la pregunta exacta del OP, pero usar gibo lo hace para que ya no tenga que pensar en 'la pregunta'. .. ¡es agradable! ;)
fuente
Para tener una mejor idea, todo lo que necesita son los siguientes archivos
Podrías poner todo lo demás en el archivo .gitignore. Todos los cambios de su aplicación se encuentran principalmente en estos archivos y carpetas. El resto que ve en un proyecto básico son archivos de construcción gradle o archivos de configuración de Android Studio.
Si está usando Android Studio, puede usar "Importar proyecto" para construir con éxito el proyecto. Alternativamente, puede construir usando la línea de comandos, siga Construyendo proyectos de Android con Gradle .
fuente
Es mejor agregar la lista .gitignore a través del tiempo de desarrollo para evitar efectos secundarios desconocidos cuando el Control de versiones no funcionará por alguna razón debido a la lista predefinida (copiar / pegar) de alguna parte. Para uno de mis proyectos, la lista de ignorados es solo de:
fuente
Github mantiene útiles elementos de gitignore para varios tipos de proyectos. Aquí está la lista de elementos útiles de gitignore para proyectos de Android.
Android Gitignore en github
fuente
Fusiono archivos .gitignore de Github
Lea: Soporte de JetBrains: cómo administrar proyectos en los sistemas de control de versiones
fuente
Usando la API proporcionada por gitignore.io , puede obtener que se genera automáticamente. Aquí está el enlace directo también gitignore.io/api/androidstudio
fuente
A partir de Android Studio 0.8.4 .gitignore el archivo se genera automáticamente al iniciar un nuevo proyecto. Por defecto contiene:
Estoy de acuerdo con esta declaración, sin embargo, modifico este archivo para cambiar / compilar para compilar / (Esto incluirá / compilar y / aplicación / compilación) Así que no termino con todos los archivos en la aplicación / compilación en mi repositorio.
Tenga en cuenta también que si importa un proyecto desde Eclipse, el .gitignore no se copiará ni se creará "automáticamente" para usted.
fuente
Compilacion:
fuente
Para evitar la importación de todos los archivos, donde Android Studio ignora la lista de "Archivos ignorados", pero aún aprovecha el VCS de Android Studio, hice lo siguiente: Esto usará la lista de "Archivos ignorados" de Android Studio (¡después de la importación! No durante) Y evite tener que usar la engorrosa forma en que Tortoise SVN establece la lista svn: ignore.
En adelante, se ignorarán los "Archivos ignorados" y aún puede administrar VCS desde Android Studio.
Saludos, -Joost
fuente
Android Studio 3.5.3
Lo uso para mis bibliotecas y proyectos y cubre la mayoría de los archivos que genera Android Studio y otras herramientas famosas:
fuente
Esto se crea utilizando la referencia de http://gitignore.io/ donde puede crear el último archivo gitignore actualizado para cualquier proyecto. Para Android http://gitignore.io/api/androidstudio . Espero que esto ayude. Actualmente estoy usando Android Studio 3.6.3
fuente
Esta documentación oficial de JetBrains Support dice que se debe incluir lo siguiente:
También da otras recomendaciones sobre cosas a tener en cuenta.
fuente
.gitignore de la biblioteca AndroidRate
fuente
https://github.com/github/gitignore es una colección increíble
Android.gitignore
fuente