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까지 무시되므로 웹 소스에 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