Flutter-.gitignore-Vorlage erklärt
Erklärt, warum Flutter.gitignore .dart_tool, build, plattformspezifische generierte Dateien und Signaturschlüssel ignoriert, und das Problem, dass die Regel *.lock sogar pubspec.lock blockiert.
Flutter.gitignore deckt breit den Dart-Tool-Ordner, Build-Ergebnisse und die Dateien ab, die Flutter in den Plattformordnern Android·iOS·macOS·Windows·Linux automatisch erzeugt. Kennzeichnend ist der häufige Einsatz von **, etwa in **/ios/**/Pods/.
Die Vorlage enthält auch Pfade des Flutter-SDK-Repositorys selbst, etwa /bin/cache/ oder /dev/bots/. In App-Repositorys gibt es diese Pfade nicht, sie schaden also nicht; beachten Sie aber, dass die von flutter create erzeugte .gitignore besser zu Apps passt.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
.dart_tool/.packages.pub/.flutter-plugins.flutter-plugins-dependencies | Dart- und pub-WerkzeugeDateien, die flutter pub get neu erzeugt, etwa das Ergebnis der Paketauflösung und die Plugin-Liste. |
build/coverage/app.*.symbols | Build-ErgebnisseAusgaben von flutter build, Testabdeckung und Symboldateien verschleierter Builds. |
*.lock | Sämtliche Lock-DateienIgnoriert alle .lock-Dateien. Dadurch werden auch pubspec.lock, Podfile.lock und sogar Gemfile.lock ausgeschlossen. Die Regel passt zum SDK-Repository, meist aber nicht zu Apps. |
**/android/local.properties**/android/key.properties*.jks**/android/**/GeneratedPluginRegistrant.java**/android/gradlew | Generierte Android-Dateien und GeheimnisseAutomatisch erzeugte oder geheime Dateien wie local.properties mit dem SDK-Pfad, key.properties und der Keystore mit dem Signaturpasswort sowie Code zur Plugin-Registrierung. |
**/ios/**/Pods/**/ios/Flutter/Generated.xcconfig**/ios/Runner/GeneratedPluginRegistrant.***/ios/**/xcuserdata**/macos/Flutter/ephemeral | Generierte iOS- und macOS-DateienErgebnis der CocoaPods-Installation, xcconfig-Dateien, die Flutter bei jedem Build schreibt, Code zur Plugin-Registrierung und Xcode-Benutzerzustand. |
**/windows/flutter/generated_plugin_registrant.cc**/linux/flutter/generated_plugins.cmake | Plugin-Registrierungscode für DesktopAutomatisch erzeugte C++- und CMake-Dateien, die Plugins bei Windows- und Linux-Builds einbinden. |
*.log*.pyc*.swp.history | SonstigesLogs, Tool-Caches und temporäre Editordateien. |
Hinweise für die Praxis
- Bei Apps committen Sie
pubspec.lock, wie die Dart-Dokumentation empfiehlt. Mit dieser Vorlage tragen Sie unter den eigenen Regeln!pubspec.lockund!**/ios/Podfile.lockein. key.propertiesund den.jks-Keystore niemals committen. In der CI werden sie aus einem Secret-Speicher eingespielt.- Wählen Sie zusätzlich die Dart-Vorlage, wird auch
*.jsignoriert. Enthalten Ihre Webquellen JavaScript-Dateien, testen Sie das Ergebnis.
Originalvorlage
# 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
Vorlagenquelle: github/gitignore/Flutter.gitignore @356fd7b (2026-09-11) · CC0-1.0