运行颤振升级时的"Your flutter checkout has local changes that would be erased by upgrading."



我最近决定运行flutter升级,但启动后,命令终端状态为:

您的flutter签出有本地更改,这些更改将通过升级删除。如果你想保留这些更改建议您通过";git stash"或者将更改提交到本地分支。如果可以移除本地更改,然后用"--"力";。

我不知道";局部变化"我对git不是很熟悉,通常不需要明确地处理它。我担心如果使用"--力">

有没有办法让我先检查一下这些变化是什么?这可能是我忘记的一些本地配置更改。

您可能有意或无意地更改了flutter源代码。该消息简单地指出,如果您想保留以前所做的更改,则必须使用git stash(将更改保存在脏工作目录中(命令临时保存您的工作,升级后,您可以在flutter源代码中重新应用保存的工作。

在这种情况下通常为flutter upgrade --force

一个稍微完整的答案,这样您就可以看到您的本地颤振环境实际上发生了什么变化:

cd ~/development/flutter #or wherever you installed flutter
git diff HEAD

在我的案例中,git提醒我,我已经将'--disable-web-security'添加到了packages/flutter_tools/lib/src/web/chrome.dart中,我怀疑这将是一个非常常见的本地更改。

git stash #if you like, or just remember your changes
flutter upgrade --force #to upgrade flutter

现在,您可以将本地更改放回原处,前提是您仍然需要这些更改。

git stash
flutter upgrade --force

它解决了我的问题

您永远不应该在不了解为什么进行破坏性更改以及不利因素的情况下进行这些更改。盲目地做flutter upgrade --force只是没有得到实践和糟糕的建议IMHO,即使结果出来了。

相反,请确保您没有从本地项目目录中运行flutter upgrade。您应该从flutter目录(例如# cd flutter_path/(运行它。首先,你的本地目录可能在.gitignore中有Flutter相关的详细信息,这意味着你的本地项目不会将以下内容提交给git(默认设置(:

# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
/build/

因此,即使是本地目录中的git stash也不会被具有上述配置的Flutter看到。。。

Tl;dr:一个非常简单的"安全";实践是cd到您的根Flutter文件夹并在那里运行升级。您可以从那里提交/隐藏本地Flutter软件包更改等,然后放心地安全运行flutter upgrade命令。这是更好的练习。Ofc,如果你确切地知道自己在做什么以及为什么,那么就做对你最好的事情(但你无论如何都不需要这个建议(。。。

相关内容

  • 没有找到相关文章

最新更新