给Flutter项目添加.gitignore文件以及如何修改.gitignore文件并生效

简介: flutter项目的开发,一般来说都是与原生开发混合进行的,单纯的flutter开发局限性很大,需要与原生进行配合。

给Flutter项目添加.gitignore文件以及如何修改.gitignore文件并生效

flutter项目的开发,一般来说都是与原生开发混合进行的,单纯的flutter开发局限性很大,需要与原生进行配合。

flutter项目集成的两种方式

这就涉及到如何将flutter与现有的项目进行融合。这里以客户端的Android/Ios开发为例,使用flutter开发项目大体有两种集成方式,第一种就是新建flutter项目,android端就在flutter/android目录下开发,ios端就在flutter/ios目录下开发,这种方式对新开发一个flutter项目来说很方便。第二种集成方式是在已有的Android、Ios项目中添加flutter,通过module依赖的方式加入,具体请参照向现有app添加flutter模块,这种方式的优点是已有的客户端项目不需要做太大的变动,Android端和ios端只需要新增flutter module即可。

下面我们讲讲flutter项目的.gitignore文件。

flutter项目的.gitignore文件

.gitignore文件如果完全自己去写的话会很麻烦,幸运的是我们直接去github上的flutter项目中可以找到最权威的.gitignore文件

美中不足的是,这个.gitignore可以覆盖掉第一种集成方式的文件,针对flutter module这种集成方式,android端项目是以.android/文件形式存在于flutter module中的,ios端项目是以.ios/文件形式存在的,所以针对这两个文件需要做些相应的修改。

主要是将.gitignore文件中针对/android/文件夹和/ios/文件夹的忽略,仿照这添加一份/.android//.ios/的忽略。

修改的部分如下:

# Android related
**/android/**/gradle-wrapper.jar
**/android/.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/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*

修改之后:

# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/key.properties
*.jks

# 针对flutter当做module集成进现有项目时,.android目录下的文件
**/.android/**/gradle-wrapper.jar
**/.android/.gradle
**/.android/captures/
**/.android/gradlew
**/.android/gradlew.bat
**/.android/local.properties
**/.android/**/GeneratedPluginRegistrant.java
**/.android/key.properties


# 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/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*

# 针对flutter当做module集成进现有项目时,.ios目录下的文件
**/.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/App.framework
**/.ios/Flutter/Flutter.framework
**/.ios/Flutter/Generated.xcconfig
**/.ios/Flutter/app.flx
**/.ios/Flutter/app.zip
**/.ios/Flutter/flutter_assets/
**/.ios/ServiceDefinitions.json
**/.ios/Runner/GeneratedPluginRegistrant.*

修改.gitignore文件并让其生效

.gitignore文件修改完了,此时可能会存在一个新的问题。如果.android/.ios/文件夹下的文件已经提交到远程仓库了,就算我们这里修改并提交了.gitignore文件,这次针对.android/.ios/的修改不会生效的。因为git会继续追踪已经追踪的文件。怎么办呢?执行下面的命令就好。

first:

git rm -r --cached . 
git add .

second:

git commit -am "Remove ignored files"

last:

git pull origin branch-name
git push origin branch-name

参考:

flutter官方demo的.gitignore文件

向现有app添加flutter模块

How to make Git “forget” about a file that was tracked but is now in .gitignore?

相关文章
|
6月前
|
设计模式 前端开发 测试技术
Flutter 项目架构技术指南
探讨Flutter项目代码组织架构的关键方面和建议。了解设计原则SOLID、Clean Architecture,以及架构模式MVC、MVP、MVVM,如何有机结合使用,打造优秀的应用架构。
168 1
Flutter 项目架构技术指南
|
2月前
|
Dart
如何在 Flutter 项目中使用 Dart 语言?
如何在 Flutter 项目中使用 Dart 语言?
127 58
|
20天前
flutter 用PUT的方式传输文件不带分隔符
flutter 用PUT的方式传输文件不带分隔符
12 4
|
30天前
|
Dart IDE 开发工具
鸿蒙Flutter实战:09-现有Flutter项目支持鸿蒙
本文介绍了将现有Flutter项目适配鸿蒙系统的步骤。首先,根据[鸿蒙Flutter适配指南]搭建开发环境,并使用fvm管理多版本SDK。项目采用模块化设计,包括apps、common、components、modules和plugins等目录,分别对应不同功能模块。重点在于在apps目录下创建新的鸿蒙项目,逐步添加依赖并解决版本兼容性问题。最后,通过配置pubspec.yaml文件和特定插件的鸿蒙化适配,完成项目的编译与运行测试。
64 0
|
3月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
301 4
|
3月前
|
Java Android开发
添加Flutter模块到已有项目(Android)
添加Flutter模块到已有项目(Android)
46 3
|
3月前
|
Dart 搜索推荐 IDE
打造个性化天气应用:从零开始的Flutter项目之旅
【8月更文挑战第31天】本文将引导读者通过Flutter框架创建一个简单的天气应用,涵盖从设置开发环境到实现基本功能的全过程。我们将探索如何使用Dart语言和Flutter SDK构建用户界面,并集成第三方API来获取实时天气数据。文章不仅提供代码示例,还将讨论如何进行调试和部署应用,确保读者能够理解并实践所学知识。
|
5月前
|
开发框架 Dart 开发工具
一个Android项目怎么判断是flutter
【6月更文挑战第6天】
106 2
|
4月前
|
Dart Android开发 iOS开发
flutter 创建项目、运行项目、项目目录
flutter 创建项目、运行项目、项目目录
169 0
|
6月前
|
存储 缓存
Flutter 文件读写---path_provider
Flutter 文件读写—path_provider 在Flutter中,可以通过path_provider库来实现文件的读写操作。这个库提供了许多方法,可以方便地获取设备上的常用目录,比如文档目录、下载目录、临时目录等。
202 1