我正在用Flutter做一个学校的项目,我们需要使用一个版本控制系统,比如git。
为此,我做了以下工作:
1.我使用VS代码创建了一个flutter项目,如Flutter文档所述。
1.我将创建的项目推送到我的Github repo中,而没有更改任何内容,包括. gitignore文件。
1.我也尝试过使用VS代码从另一台计算机克隆项目(我们无意使用Android Studio或任何其他IDE)。
1.一旦项目被克隆到新的工作区,我就运行flutter packages get来安装缺失的包(从第一次推送到repo时忽略)。
1.现在VS代码告诉我,我需要推送由前面的命令创建的pubspec. lock文件。
我的问题是:
- 锁文件不应该被忽略吗?(默认情况下它不存在于. gitignore文件中)
- 我所做的步骤对Flutter项目来说是正确的吗?
以下是默认的. gitignore文件内容:
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# Visual Studio Code related
.vscode/
# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.packages
.pub-cache/
.pub/
/build/
# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
# 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.*
# 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
1条答案
按热度按时间wlzqhblo1#
锁文件不应该被忽略吗?(默认情况下它不存在于.gitignore文件中)
pubspec.lock文件在默认情况下不会被忽略,如果pubspec.lock没有包含在克隆的项目中,可以通过运行
flutter pub get
生成一个新的。我所做的步骤对Flutter项目来说是正确的吗?
从1到4的步骤看起来都很好,直到出现冲突需要推送pubspec.lock。项目的pubspec.lock看起来被跟踪并被提交到存储库中。我建议将pubspec.lock文件保存在存储库中,因为它确保了不同的 checkout 将使用相同版本的依赖项。