Plantilla .gitignore de Flutter explicada
Explica por qué Flutter.gitignore ignora .dart_tool, build, archivos generados por plataforma y claves de firma, y el problema de que la regla *.lock bloquee también pubspec.lock.
Flutter.gitignore trata de forma amplia la carpeta de herramientas de Dart, los resultados de compilación y los archivos que Flutter genera automáticamente dentro de las carpetas de plataforma de Android, iOS, macOS, Windows y Linux. Una característica es el uso frecuente de **, como en **/ios/**/Pods/.
Esta plantilla también contiene rutas del propio repositorio del SDK de Flutter, como /bin/cache/ y /dev/bots/. En el repositorio de una app esas rutas no existen, así que no hacen daño, pero conviene saber que el .gitignore que crea flutter create se ajusta mejor a una app.
Explicación regla por regla
| Patrón | Qué ignora y por qué |
|---|---|
.dart_tool/.packages.pub/.flutter-plugins.flutter-plugins-dependencies | Herramientas de Dart y pubSon archivos que flutter pub get vuelve a crear, como los resultados de resolución de paquetes y la lista de plugins. |
build/coverage/app.*.symbols | Resultados de compilaciónSon los productos de flutter build, la cobertura de pruebas y los archivos de símbolos de las compilaciones ofuscadas. |
*.lock | Todos los archivos de bloqueoIgnora todos los archivos .lock. Por eso también quedan excluidos pubspec.lock, Podfile.lock y Gemfile.lock. Es una regla adecuada para el repositorio del SDK, pero normalmente no para una app. |
**/android/local.properties**/android/key.properties*.jks**/android/**/GeneratedPluginRegistrant.java**/android/gradlew | Archivos generados y secretos de AndroidSon archivos generados automáticamente o secretos: local.properties con la ruta del SDK, key.properties con las contraseñas de firma y el almacén de claves, y el código de registro de plugins. |
**/ios/**/Pods/**/ios/Flutter/Generated.xcconfig**/ios/Runner/GeneratedPluginRegistrant.***/ios/**/xcuserdata**/macos/Flutter/ephemeral | Archivos generados de iOS y macOSSon el resultado de instalar CocoaPods, el xcconfig que Flutter escribe en cada compilación, el código de registro de plugins y el estado de usuario de Xcode. |
**/windows/flutter/generated_plugin_registrant.cc**/linux/flutter/generated_plugins.cmake | Código de registro de plugins de escritorioSon archivos C++ y CMake que se generan automáticamente para conectar los plugins en las compilaciones de Windows y Linux. |
*.log*.pyc*.swp.history | OtrosSon registros, cachés de herramientas y archivos temporales del editor. |
Precauciones en la práctica
- En una app, confirma
pubspec.lockcomo recomienda la documentación de Dart. Al usar esta plantilla, pon!pubspec.locky!**/ios/Podfile.locken las reglas propias. - Nunca confirmes
key.propertiesni el almacén de claves.jks. En CI, inyéctalos desde un almacén de secretos. - Si seleccionas también la plantilla de Dart, se ignora incluso
*.js, así que si el código web tiene archivos JavaScript, prueba el resultado.
Plantilla original
# 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
Origen de las plantillas: github/gitignore/Flutter.gitignore @356fd7b (2026-09-11) · CC0-1.0