Modèle .gitignore Flutter expliqué
Explique pourquoi Flutter.gitignore ignore .dart_tool, build, les fichiers générés par plateforme et les clés de signature, et le problème posé par la règle *.lock qui bloque jusqu'à pubspec.lock.
Flutter.gitignore couvre largement le dossier des outils Dart, les résultats de build et les fichiers générés automatiquement par Flutter dans les dossiers de plateforme Android·iOS·macOS·Windows·Linux. Il se caractérise par un usage fréquent de **, comme dans **/ios/**/Pods/.
Ce modèle contient aussi des chemins propres au dépôt du SDK Flutter lui-même, comme /bin/cache/ ou /dev/bots/. Ils n'existent pas dans un dépôt d'application et ne font donc pas de mal, mais sachez que le .gitignore créé par flutter create convient mieux à une application.
Explication règle par règle
| Motif | Ce qui est ignoré et pourquoi |
|---|---|
.dart_tool/.packages.pub/.flutter-plugins.flutter-plugins-dependencies | Outils Dart·pubFichiers que flutter pub get recrée, comme le résultat de la résolution des paquets et la liste des plugins. |
build/coverage/app.*.symbols | Résultats de buildSorties de flutter build, couverture de tests et fichiers de symboles des builds obfusqués. |
*.lock | Tous les fichiers de verrouillageIgnore tous les fichiers .lock. Par conséquent, pubspec.lock, Podfile.lock et même Gemfile.lock sont exclus. Cette règle convient au dépôt du SDK, mais généralement pas à une application. |
**/android/local.properties**/android/key.properties*.jks**/android/**/GeneratedPluginRegistrant.java**/android/gradlew | Fichiers générés et secrets AndroidFichiers générés automatiquement ou secrets : local.properties qui contient le chemin du SDK, key.properties et le keystore qui contiennent le mot de passe de signature, code d'enregistrement des plugins, etc. |
**/ios/**/Pods/**/ios/Flutter/Generated.xcconfig**/ios/Runner/GeneratedPluginRegistrant.***/ios/**/xcuserdata**/macos/Flutter/ephemeral | Fichiers générés iOS·macOSRésultat de l'installation CocoaPods, xcconfig réécrit par Flutter à chaque build, code d'enregistrement des plugins et état utilisateur de Xcode. |
**/windows/flutter/generated_plugin_registrant.cc**/linux/flutter/generated_plugins.cmake | Code d'enregistrement des plugins de bureauFichiers C++ et CMake générés automatiquement pour relier les plugins lors des builds Windows·Linux. |
*.log*.pyc*.swp.history | DiversLogs, caches d'outils et fichiers temporaires d'éditeurs. |
Points d'attention en pratique
- Pour une application, commitez
pubspec.lockcomme le recommande la documentation de Dart. Avec ce modèle, ajoutez!pubspec.locket!**/ios/Podfile.lockdans les règles à ajouter vous-même. - Ne commitez jamais
key.propertiesni le keystore.jks. En CI, injectez-les depuis un coffre de secrets. - Si vous sélectionnez aussi le modèle Dart,
*.jsest également ignoré : si vos sources web contiennent des fichiers JavaScript, testez le résultat.
Modèle d'origine
# Miscellaneous*.class*.lock*.log*.pyc*.swp.buildlog/.history# Flutter repo-specific/bin/cache//bin/internal/bootstrap.bat/bin/internal/bootstrap.sh/bin/mingit//dev/benchmarks/mega_gallery//dev/bots/.recipe_deps/dev/bots/android_tools//dev/devicelab/ABresults*.json/dev/docs/doc//dev/docs/flutter.docs.zip/dev/docs/lib//dev/docs/pubspec.yaml/dev/integration_tests/**/xcuserdata/dev/integration_tests/**/Pods/packages/flutter/coverage/versionanalysis_benchmark.json# packages file containing multi-root paths.packages.generated# Flutter/Dart/Pub related**/doc/api/.dart_tool/.flutter-plugins.flutter-plugins-dependencies**/generated_plugin_registrant.dart.packages.pub-preload-cache/.pub/build/flutter_*.pnglinked_*.dsunlinked.dsunlinked_spec.ds# Android related**/android/**/gradle-wrapper.jar.gradle/**/android/captures/**/android/gradlew**/android/gradlew.bat**/android/local.properties**/android/**/GeneratedPluginRegistrant.java**/android/key.properties*.jks# iOS/XCode related**/ios/**/*.mode1v3**/ios/**/*.mode2v3**/ios/**/*.moved-aside**/ios/**/*.pbxuser**/ios/**/*.perspectivev3**/ios/**/*sync/**/ios/**/.sconsign.dblite**/ios/**/.tags***/ios/**/.vagrant/**/ios/**/DerivedData/**/ios/**/Icon?**/ios/**/Pods/**/ios/**/.symlinks/**/ios/**/profile**/ios/**/xcuserdata**/ios/.generated/**/ios/Flutter/.last_build_id**/ios/Flutter/App.framework**/ios/Flutter/Flutter.framework**/ios/Flutter/Flutter.podspec**/ios/Flutter/Generated.xcconfig**/ios/Flutter/ephemeral**/ios/Flutter/app.flx**/ios/Flutter/app.zip**/ios/Flutter/flutter_assets/**/ios/Flutter/flutter_export_environment.sh**/ios/ServiceDefinitions.json**/ios/Runner/GeneratedPluginRegistrant.*# macOS**/Flutter/ephemeral/**/Pods/**/macos/Flutter/GeneratedPluginRegistrant.swift**/macos/Flutter/ephemeral**/xcuserdata/# Windows**/windows/flutter/generated_plugin_registrant.cc**/windows/flutter/generated_plugin_registrant.h**/windows/flutter/generated_plugins.cmake# Linux**/linux/flutter/generated_plugin_registrant.cc**/linux/flutter/generated_plugin_registrant.h**/linux/flutter/generated_plugins.cmake# Coveragecoverage/# Symbolsapp.*.symbols# Exceptions to above rules.!**/ios/**/default.mode1v3!**/ios/**/default.mode2v3!**/ios/**/default.pbxuser!**/ios/**/default.perspectivev3!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages!/dev/ci/**/Gemfile.lock
Source des modèles : github/gitignore/Flutter.gitignore @356fd7b (2026-09-11) · CC0-1.0