Penjelasan template .gitignore Flutter
Menjelaskan mengapa Flutter.gitignore mengabaikan .dart_tool, build, file hasil generate per platform, dan kunci penandatanganan, serta masalah aturan *.lock yang ikut memblokir pubspec.lock.
Flutter.gitignore menangani secara luas folder alat Dart, hasil build, dan file yang dibuat otomatis oleh Flutter di dalam folder platform Android, iOS, macOS, Windows, dan Linux. Cirinya adalah banyak memakai **, seperti **/ios/**/Pods/.
Template ini juga berisi path milik repositori Flutter SDK itu sendiri, seperti /bin/cache/ dan /dev/bots/. Repositori aplikasi tidak memiliki path tersebut sehingga tidak berbahaya, tetapi perlu diketahui bahwa .gitignore yang dibuat flutter create lebih cocok untuk aplikasi.
Penjelasan per aturan
| Pola | Apa yang diabaikan dan mengapa |
|---|---|
.dart_tool/.packages.pub/.flutter-plugins.flutter-plugins-dependencies | Alat Dart dan pubFile yang dibuat ulang oleh flutter pub get, seperti hasil resolusi paket dan daftar plugin. |
build/coverage/app.*.symbols | Hasil buildHasil flutter build, coverage pengujian, dan file simbol dari build yang diobfuskasi. |
*.lock | Semua file lockMengabaikan semua file .lock. Akibatnya pubspec.lock, Podfile.lock, dan Gemfile.lock juga ikut dikecualikan. Aturan ini cocok untuk repositori SDK, tetapi biasanya tidak cocok untuk aplikasi. |
**/android/local.properties**/android/key.properties*.jks**/android/**/GeneratedPluginRegistrant.java**/android/gradlew | File hasil generate dan rahasia AndroidFile yang dibuat otomatis atau bersifat rahasia, seperti local.properties yang berisi path SDK, key.properties yang berisi kata sandi penandatanganan beserta keystore, dan kode registrasi plugin. |
**/ios/**/Pods/**/ios/Flutter/Generated.xcconfig**/ios/Runner/GeneratedPluginRegistrant.***/ios/**/xcuserdata**/macos/Flutter/ephemeral | File hasil generate iOS dan macOSHasil instalasi CocoaPods, xcconfig yang ditulis Flutter setiap build, kode registrasi plugin, dan status pengguna Xcode. |
**/windows/flutter/generated_plugin_registrant.cc**/linux/flutter/generated_plugins.cmake | Kode registrasi plugin desktopFile C++ dan CMake yang dibuat otomatis untuk menghubungkan plugin pada build Windows dan Linux. |
*.log*.pyc*.swp.history | LainnyaLog, cache alat, dan file sementara editor. |
Hal yang perlu diperhatikan dalam praktik
- Untuk aplikasi, commit
pubspec.locksesuai rekomendasi dokumentasi Dart. Saat memakai template ini, masukkan!pubspec.lockdan!**/ios/Podfile.lockke aturan tambahan sendiri. - Jangan pernah commit
key.propertiesdan keystore.jks. Di CI, sisipkan dari penyimpanan rahasia. - Jika template Dart dipilih bersama,
*.jsjuga ikut diabaikan, jadi jika sumber web berisi file JavaScript, uji hasilnya.
Template asli
# 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
Sumber template: github/gitignore/Flutter.gitignore @356fd7b (2026-09-11) · CC0-1.0