android-studio générateur - Que devrait être dans mon.gitignore pour un projet Android Studio?



for mac (25)

À partir de Android Studio 0.8.4, le fichier .gitignore est généré automatiquement lors du démarrage d'un nouveau projet. Par défaut, il contient:

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

Je suis d'accord avec cette déclaration, mais je modifie ce fichier pour le modifier / construire pour construire / (cela inclura / build et / app / build). Je ne me retrouve donc pas avec tous les fichiers dans app / build dans mon référentiel.

Notez également que si vous importez un projet depuis Eclipse, le fichier .gitignore ne sera pas copié ou "automatiquement" créé pour vous.

Quels fichiers devraient être dans mon .gitignore pour un projet Android Studio?

J'ai vu plusieurs exemples qui incluent tous .iml mais les documents d'IntelliJ disent que .iml doit être inclus dans votre contrôle de code source.


Testé avec Android Studio 3.0

Vous devrez peut-être installer le plug- in .ignore .

Vous pouvez générer automatiquement le fichier .gitignore pour Android. Faites un clic droit sur le dossier et suivez

Sélectionnez ensuite Android à partir du panneau de gauche et cliquez sur Générer.

Android Studio générera un fichier .gitignore contenant tous les fichiers à ignorer.

Tiré de http://menukanows.com/how-to-add-gitignore-file-in-android-project/


Il est préférable d'ajouter la liste .gitignore tout au long du développement pour éviter les effets secondaires inconnus lorsque Version Control ne fonctionnera pas pour une raison quelconque en raison de la liste (copier / coller) prédéfinie. Pour l'un de mes projets, la liste des ignorés ne comprend que:

.gradle
.idea
libs
obj
build
*.log

Sur la base de mon fichier Android standard .gitignore , et après avoir lu la documentation sur le site Web d'Intellij IDEA et lu des articles sur , j'ai construit le fichier suivant:

# 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

Notez également que, comme indiqué, la section des fichiers natifs générés est principalement utile lorsque vous créez votre propre code natif avec le NDK Android. Si, par contre, vous utilisez une bibliothèque tierce incluant ces fichiers, vous pouvez supprimer ces lignes (* .o et * .so) de votre fichier .gitignore.


Github maintains useful gitignore items for various kinds of projects. Here is the list of useful gitignore items for android projects.

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# Intellij
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/libraries

# Keystore files
*.jks

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

Android Gitignore in github


Pour avoir une meilleure idée, il suffit d'avoir les fichiers suivants

  • app
  • build.gradle
  • settings.gradle

Vous pouvez mettre tout le reste dans le fichier .gitignore. Toutes vos modifications d'applications se trouvent principalement dans ces fichiers et dossiers. Le reste que vous voyez dans un projet de base sont des fichiers de construction graduelle ou des fichiers de configuration Android Studio.

Si vous utilisez Android Studio, vous pouvez utiliser "Projet d'importation" pour créer le projet avec succès. Alternativement, vous pouvez créer en utilisant la ligne de commande, suivez Building Android Projects avec Gradle .


To circumvent the import of all files, where Android Studio ignores the "Ignored Files" list, but still leverage Android Studio VCS, I did the following: This will use the "Ignored Files" list from Android Studio (after import! not during) AND avoid having to use the cumbersome way Tortoise SVN sets the svn:ignore list.

  1. Use the Tortoise SVN repository browser to create a new project folder directly in the repository.
  2. Use Tortoise SVN to checkout the new folder over the top of the folder you want to import. You will get a warning that the local folder is not empty. Ignore the warning. Now you have a versioned top level folder with unversioned content.
  3. Open your project from the local working directory. VCS should now be enabled automatically
  4. Set your file exceptions in File -> Settings -> Version Control -> Ignored Files
  5. Add files to SVN from Android Studio: select 'App' in Project Structure -> VCS -> Add to VCS (this will add all files, except "Ignored Files")
  6. Commit Changes

Going forward, "Ignored Files" will be ignored and you can still manage VCS from Android Studio.

Cheers, -Joost


Dépend de la façon dont le format de votre projet est maintenu:

Vous avez deux options:

  1. Format basé sur l'annuaire (vous aurez un dossier .idea contenant les fichiers spécifiques au projet)
  2. Format basé sur des fichiers (les fichiers de configuration sont .iws et .ipr )

Réf: http://www.jetbrains.com/idea/webhelp/project.html

Les fichiers engagés dans le contrôle de version dépendent de ce qui précède:

  1. Inclure le dossier .idea dans le contrôle de version, exclure workspace.xml et tasks.xml
  2. .ipr contrôle de version .ipr et tous les fichiers de module .iml , excluez le fichier .iws car il stocke les paramètres spécifiques à l'utilisateur.

Réf: https://intellij-support.jetbrains.com/entries/23393067


Dans le cas d'Android Studio, les seuls fichiers à enregistrer dans le contrôle de version sont les fichiers requis pour générer l'application à partir de la ligne de commande à l'aide de gradle. Vous pouvez donc ignorer:

  • * .iml
  • .idée
  • construire

Toutefois, si vous enregistrez des paramètres IDE, tels que des paramètres de style de code personnalisés, ils sont enregistrés dans le dossier .idea. Si vous voulez ces changements dans le contrôle de version, vous devez également enregistrer les fichiers IDEA (* .iml et .idea).


github.com/github/gitignore is awesome collection

Android.gitignore

# Built application files
*.apk
*.ap_

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches

# Keystore files
# Uncomment the following line if you do not want to check your keystore files in.
#*.jks

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

Mise à jour 7/2015:

Voici la source définitive de JetBrains

Format de projet basé sur l'annuaire (répertoire .idea)

Ce format est utilisé par défaut par toutes les versions IDE récentes. Voici ce que vous devez partager:

  • Tous les fichiers du répertoire .idea dans la racine du projet, à l' exception des fichiers workspace.xml et tasks.xml qui stockent des paramètres spécifiques à l'utilisateur
  • Tous les fichiers de module .iml pouvant être situés dans différents répertoires de module (s'applique à IntelliJ IDEA)

Faites attention à partager les éléments suivants:

  • Artefacts Android qui génèrent une génération signée (contiendront les mots de passe du magasin de clés)
  • Dans IDEA 13 et dataSources.ids antérieures, dataSources.ids , dataSources.ids peut contenir des mots de passe de base de données. IDEA 14 résout ce problème .

Vous pouvez envisager de ne pas partager les éléments suivants:

  • fichier gradle.xml, voir cette discussion
  • dossier dictionnaires utilisateur (pour éviter les conflits si un autre développeur porte le même nom)
  • Fichiers XML sous les .idea/libraries au cas où ils seraient générés à partir du projet Gradle

Format de projet hérité ( .ipr / .iml / .iws )

  • Partagez le fichier .ipr du projet et tous les fichiers du module .iml , ne partagez pas le fichier .iws car il stocke des paramètres spécifiques à l'utilisateur

Bien que ces instructions concernent IntelliJ IDEA, elles sont vraies à 100% pour Android Studio.

Voici un extrait de .gitignore qui intègre toutes les règles ci-dessus:

# Android Studio / IntelliJ IDEA 
*.iws
.idea/libraries
.idea/tasks.xml
.idea/vcs.xml
.idea/workspace.xml

Je fusionne les fichiers Github .gitignore

### Github Android.gitignore ### 

# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/

# Gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

### Github JetBrains.gitignore ### 

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

Please read: JetBrains Support: How to manage projects under Version Control Systems


I had problems with ignoring build files, but this seems to work :-)

# 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

# Eclipse project files
.classpath
.project

# Android Studio
.idea/
.gradle
/*/local.properties
/*/out
/*/*/build
/*/*/production
*.iml
*.iws
*.ipr
*~
*.swp

*/build
*/production
*/local.properties
*/out

This official documentation from JetBrains Support says the following should be included:

All files under .idea directory except workspace.xml and tasks.xml because
    they store specific user settings
All the *.iml files that can be located in different module directories

It also gives other recommendations of things to be careful about.


Pour les projets Android Studio 3.0, utilisez les éléments suivants:

.gitignore

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

Dossier de projet Gradle

La seule chose qui devrait se trouver dans votre dossier de projet (Gradle) après le clonage du référentiel est cette structure (du moins pour les cas d'utilisation rencontrés jusqu'à présent):

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

Je supporte la validation du dossier .idea (sauf workspace.xml et tasks.xml ). Mais je commence à en venir à la conclusion que les fichiers .iml doivent être ignorés.

Voici le problème:

Ouvrez un projet dans un répertoire nommé "foo" par exemple et vous obtiendrez foo.iml et tout semble bien. Le problème est que si je renomme simplement le répertoire en foo2 (ou le clone dans un autre nom de répertoire) lorsque vous essayez d'ouvrir le projet dans Android Studio, vous obtiendrez trois choses:

  • Un nouveau fichier iml nommé foo2.iml
  • Le fichier iml de votre projet Android sera modifié pour pointer maintenant sur foo2 en tant que parent
  • .idea / modules.xml aura une ligne ajoutée pour foo2.iml donc il aura à la fois l'ancien fichier iml et celui du nouveau répertoire

Je ne trouve aucun moyen d'empêcher Android Studio d'effectuer cette génération de fichier iml lorsque le projet est stocké dans un répertoire différent. Les ajouter au contrôle des sources va causer des problèmes. Par conséquent, je pense que nous devrions peut-être ignorer les fichiers * .iml et .idea/modules.xml


Mon conseil serait également de ne pas ignorer le dossier .idea.

J'ai importé un projet Eclipse basé sur Git dans Android Studio et cela s'est bien passé. Plus tard, je voulais importer ce projet avec Git (comme la première fois) sur une autre machine avec Android Studio, mais cela n'a pas fonctionné. Android Studio a chargé tous les fichiers mais n'a pas pu "voir" le projet en tant que projet. Je ne pouvais ouvrir que des fichiers Git.

Lors de la première importation du projet (depuis Eclipse vers Android Studio), mon ancien fichier .gitignore a été remplacé et le nouveau a ressemblé à ceci:

  • .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

Donc, j'ai essayé d'utiliser un gitignore vide et maintenant ça fonctionnait. L'autre Android Studio pourrait charger les fichiers et le projet. Je suppose que certains fichiers ne sont pas importants (profiles_settings.xml) pour Git et l'importation, mais je suis juste content que cela ait fonctionné.


Fondamentalement, tout fichier qui est automatiquement régénéré.

Un bon test consiste à cloner votre repo et voir si Android Studio est capable d'interpréter et d'exécuter votre projet immédiatement (générant ce qui manque).
Sinon, trouvez ce qui manque et assurez-vous qu'il n'est pas ignoré, mais ajouté au dépôt.

Cela étant dit, vous pouvez prendre exemple sur les fichiers .gitignore existants, comme celui d' Android .

# 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

# Eclipse project files
.classpath
.project

# Proguard folder generated by Eclipse
proguard/

# Intellij project files
*.iml
*.ipr
*.iws
.idea/


Compilation:

#built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Gradle files
.gradle/
build/
/*/build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

# Eclipse project files
.classpath
.project

# Android Studio
*.iml
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/

# Intellij project files
*.iml
*.ipr
*.iws
.idea/

Je sais que c'est un vieux sujet et qu'il y a certainement beaucoup d'options, mais je préfère vraiment le gibo de Simon Whitaker. Il est super simple à utiliser, multiplate-forme (mac, * nix et windows), et utilise le github.com/github/gitignore github github.com/github/gitignore donc il est (essentiellement) toujours à jour.

Assurez-vous que votre cache local est à jour:

    $ gibo --upgrade
    From https://github.com/github/gitignore
     * branch            master     -> FETCH_HEAD
    Current branch master is up to date.

Recherchez la langue / la technologie dont vous avez besoin:

    $ gibo --search android
    Android

Affichez le fichier .gitignore:

    $ gibo Android
    ### Android

    # Built application files
    *.apk
    *.ap_

    # Files for the Dalvik VM
    *.dex

    # Java class files
    *.class

    # Generated files
    bin/
    gen/

    # Gradle files
    .gradle/
    build/

    # Local configuration file (sdk path, etc)
    local.properties

    # Proguard folder generated by Eclipse
    proguard/

    # Log Files
    *.log

Maintenant, ajoutez-le au fichier .gitignore de votre projet:

    $ gibo Android >> .gitignore

(Assurez-vous d'utiliser >> pour ajouter au fichier .gitignore de votre projet; un > le remplacera - comme je l'ai déjà fait plusieurs fois par accident!)

Je sais que cela ne répond pas à la question exacte de l'OP, mais l'utilisation de gibo permet de ne plus avoir à penser à la question! .. c'est bien! ;)


À partir de Android Studio 0.8.4, le fichier .gitignore est généré automatiquement lors du démarrage d'un nouveau projet. Par défaut, il contient:

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build

Je suis kasher avec l'ajout des fichiers .iml et Intellij sez pour ajouter le dossier .idea mais ignorez les fichiers .idea / workspace.xml et .idea / tasks.xml, mais qu'en est-il de .idea / libraries /?

Je ne vois pas comment il est logique d'ajouter ceci. Il contient une liste de fichiers XML répertoriant les bibliothèques que le projet Android Studio est censé connaître. Celles-ci sont censées provenir des dépendances définies par build.gradle - et non d'un fichier de projet IDE.

Le contenu de l'un de ces fichiers ressemble également à ceci:

<component name="libraryTable">
    <CLASSES>
       <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.example/example/etc...jar!"/>

Cela n'a aucun sens de commettre cela. Que se passe-t-il si l'utilisateur spécifie un répertoire personnel différent pour gradle, ou s'il utilise une version de gradation différente, le chemin sous .gradle/caches/artifacts-xxx sera différent pour eux (les artifacts- ajoutés à la fin se rapportent à la version de gradle que vous utilisez.) Ces chemins ne sont pas universels, et pourtant, le conseil est de vérifier tout cela?


Mis à jour vers Android Studio 3.0 Veuillez partager les éléments manquants dans les commentaires.

Une réponse tardive mais aucune des réponses ici et here était sur l'argent pour nous ...

Alors, voici notre fichier 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

Depuis Android Studio 2.2 et jusqu'à 3.0, de nouveaux projets sont créés avec ce fichier gitignore:

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

Obsolète - pour les anciens formats de projet, ajoutez cette section à votre fichier gitignore:


/*/out
/*/*/build
/*/*/production
*.iws
*.ipr
*~
*.swp

Ce fichier doit être situé dans le dossier racine du projet et non dans le dossier du module du projet.

Modifier les notes:

  1. Depuis la version 0.3+, il semble que vous puissiez commettre et pousser des fichiers * .iml et build.gradle . Si votre projet est basé sur Gradle: dans la nouvelle boîte de dialogue d’ouverture / importation, cochez la case "use auto import" et cochez la case d’option "use default gradle wrapper (recommended)" . Tous les chemins sont maintenant relatifs comme @George a suggéré.

  2. Mise à jour de la réponse en fonction de la source attachée à @ 128 Ko et des suggestions de @Skela


Vous voulez utiliser /* au lieu de * ou */ dans la plupart des cas

L'utilisation de * est valide, mais elle fonctionne récursivement. Il ne se penchera plus sur les annuaires. Les gens recommandent d'utiliser !*/ Pour les répertoires de la liste blanche à nouveau, mais il est préférable de mettre à jour le dossier de plus haut niveau avec /*

# Blacklist files/folders in same directory as the .gitignore file
/*

# Whitelist some files
!.gitignore
!README.md

# Ignore all files named .DS_Store or ending with .log
**/.DS_Store
**.log

# Whitelist folder/a/b1/ and folder/a/b2/
# trailing "/" is optional for folders, may match file though.
# "/" is NOT optional when followed by a *
!folder/
folder/*
!folder/a/
folder/a/*
!folder/a/b1/
!folder/a/b2/

Le code ci-dessus ignorerait tous les fichiers sauf .gitignore , README.md , folder/a/b1/ et folder/a/b2/ et tout contenu dans ces deux dossiers. (Et les fichiers .DS_Store et *.log seraient ignorés dans ces dossiers.)

Évidemment, je pourrais faire par exemple !/folder ou !/.gitignore aussi.

Plus d'infos: http://git-scm.com/docs/gitignore





git android-studio gitignore