github/gitignore · Flutter.gitignore
Flutter .gitignore テンプレート解説
Flutter.gitignore が .dart_tool、build、プラットフォームごとの生成ファイル、署名キーを無視する理由と、*.lock ルールが pubspec.lock まで防いでしまう問題を説明します。
Flutter.gitignore は Dart のツールフォルダー、ビルド結果、そして Android・iOS・macOS・Windows・Linux の各プラットフォームフォルダー内で Flutter が自動生成するファイルを幅広く扱う。**/ios/**/Pods/ のように ** を多用するのが特徴である。
このテンプレートには /bin/cache/、/dev/bots/ のような Flutter SDK リポジトリ自体のパスも含まれている。アプリのリポジトリにはそうしたパスがないので害にはならないが、flutter create が作る .gitignore の方がアプリにはよく合うことを知っておくとよい。
ルール別の解説
| パターン | 何を、なぜ無視するか |
|---|---|
.dart_tool/.packages.pub/.flutter-plugins.flutter-plugins-dependencies | Dart・pub ツールパッケージの解決結果やプラグイン一覧など、flutter pub get が再作成するファイルである。 |
build/coverage/app.*.symbols | ビルド結果flutter build の成果物とテストカバレッジ、難読化ビルドのシンボルファイルである。 |
*.lock | ロックファイル全般すべての .lock ファイルを無視する。そのため pubspec.lock、Podfile.lock、Gemfile.lock まで一緒に除外される。SDK リポジトリには合うが、アプリには大抵合わないルールである。 |
**/android/local.properties**/android/key.properties*.jks**/android/**/GeneratedPluginRegistrant.java**/android/gradlew | Android の生成ファイル・秘密情報SDK のパスが入った local.properties、署名パスワードが入った key.properties とキーストア、プラグイン登録コードなど、自動生成されるか秘密であるファイルである。 |
**/ios/**/Pods/**/ios/Flutter/Generated.xcconfig**/ios/Runner/GeneratedPluginRegistrant.***/ios/**/xcuserdata**/macos/Flutter/ephemeral | iOS・macOS の生成ファイルCocoaPods のインストール結果、Flutter がビルドのたびに書き込む xcconfig、プラグイン登録コード、Xcode のユーザー状態である。 |
**/windows/flutter/generated_plugin_registrant.cc**/linux/flutter/generated_plugins.cmake | デスクトップのプラグイン登録コードWindows・Linux のビルドでプラグインを接続するために自動生成される C++・CMake ファイルである。 |
*.log*.pyc*.swp.history | その他ログ、ツールのキャッシュ、エディターの一時ファイルである。 |
実務での注意点
- アプリなら Dart のドキュメントの推奨どおり
pubspec.lockをコミットする。このテンプレートを使うときは、追加ルールに!pubspec.lockと!**/ios/Podfile.lockを入れる。 key.propertiesと.jksキーストアは絶対にコミットしない。CI ではシークレットストアから注入する。- Dart テンプレートを一緒に選択すると
*.jsまで無視されるため、Web のソースに JavaScript ファイルがあるなら結果をテストしてみる。
元のテンプレート
Flutter.gitignore
# 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
テンプレートの出典: github/gitignore/Flutter.gitignore @356fd7b (2026-09-11) · CC0-1.0