使用 vs 代码从 github 克隆一个颤振项目

Posted

技术标签:

【中文标题】使用 vs 代码从 github 克隆一个颤振项目【英文标题】:Cloning a flutter project from github with vs code 【发布时间】:2019-09-09 16:53:32 【问题描述】:

我正在使用 Flutter 进行一个学校项目,我们需要使用 git 等版本控制系统。

出于这个原因,我做了以下事情:

    我用VS Code作为Flutter创建了一个flutter项目 文档解释。 我将创建的项目推送到我的 Github 存储库而没有更改 任何东西,包括 .gitignore 文件。 我尝试使用 VS Code 从另一台计算机克隆项目 好吧(我们无意使用 android Studio 或任何其他 IDE 就此而言)。 将项目克隆到新工作区后,我运行 flutter packages get 来安装丢失的包(从一开始就被忽略了) 推送到仓库)。 现在 VS Code 告诉我需要推送 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

【问题讨论】:

可以发.gitignore @EncryptedWatermelon 我编辑了问题 我对颤振不熟悉,但您可能想忽略锁定文件。在杂项部分添加*.lock。如果您已经提交了锁定文件,则需要 git rm -r --cached . 然后将所有内容添加回 git add . 我遇到的每个颤振项目 repo 都有 pubspec.lock。甚至我所有的颤振项目都有 pubspec.lock 在回购。为什么要在 gitignore 中添加呢? @TirthPatel 我正在与一个团队合作,每个成员都必须克隆项目并运行flutter packages get命令来安装应用程序包,该命令还会创建pubspec.lock 文件。而且由于它是在每个本地 repo 中新创建的,因此必须推送它,这是多余的,因为它始终包含有关项目的相同信息。 【参考方案1】:

锁文件不应该被忽略吗? (.gitignore 文件中默认不存在)

默认情况下不会忽略 pubspec.lock 文件。如果 pubspec.lock 不包含在克隆的项目中,您可以通过运行 flutter pub get 生成一个新的。

我为 Flutter 项目制定的步骤是否正确?

从 1 到 4 的步骤似乎没问题,直到出现需要推送 pubspec.lock 的冲突。该项目的 pubspec.lock 似乎已被跟踪并已提交到存储库。我建议将 pubspec.lock 文件保留在 repo 中,因为它可以确保不同的签出将使用相同版本的依赖项。

【讨论】:

以上是关于使用 vs 代码从 github 克隆一个颤振项目的主要内容,如果未能解决你的问题,请参考以下文章

VS 代码源控制充满垃圾文件

如何在移动应用中更改颤振应用中的名称

VS2017下Git的使用

将项目(代码)从GitHub上克隆(下载)到本地仓库

使用git克隆项目从dev分支上更新代码以及将代码提交到Coding(或GitHub)上面

VS 代码“颤振:新的 Web 项目”不显示