Ошибка обновления Flutter: Ваши локальные изменения в следующих файлах будут перезаписаны

#flutter #upgrade

#flutter #Обновление

Вопрос:

Обновление Flutter SDK и пакетов

     My-Mac:~ admin$ flutter upgrade

    Upgrading Flutter from /Users/admin/Desktop/SDK/flutter...
    error: Your local changes to the following files would be overwritten by merge:
        packages/flutter/lib/src/services/message_codecs.dart
    Please commit your changes or stash them before you merge.
    Aborting
    Updating 2eeeXXXe9..7XXXbf4aX
  

Я перешел на flutter SDK и проверил status и получил следующие данные

 My-Mac:flutter admin$  git status
On branch master
Your branch is behind 'origin/master' by 565 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
modified:   dev/automated_tests/pubspec.yaml
modified:   dev/benchmarks/complex_layout/pubspec.yaml
modified:   dev/benchmarks/macrobenchmarks/pubspec.yaml
modified:   dev/benchmarks/microbenchmarks/pubspec.yaml
modified:   dev/bots/pubspec.yaml
modified:   dev/devicelab/pubspec.yaml
modified:   dev/integration_tests/android_semantics_testing/pubspec.yaml
modified:   dev/integration_tests/android_views/pubspec.yaml
modified:   dev/integration_tests/channels/pubspec.yaml
modified:   dev/integration_tests/external_ui/pubspec.yaml
modified:   dev/integration_tests/flavors/pubspec.yaml
modified:   dev/integration_tests/platform_interaction/pubspec.yaml
modified:   dev/integration_tests/ui/pubspec.yaml
modified:   dev/manual_tests/pubspec.yaml
modified:   dev/snippets/pubspec.yaml
modified:   dev/tools/pubspec.yaml
modified:   dev/tools/vitool/pubspec.yaml
modified:   examples/catalog/pubspec.yaml
modified:   examples/flutter_gallery/pubspec.yaml
modified:   examples/hello_world/pubspec.yaml
modified:   examples/layers/pubspec.yaml
modified:   examples/platform_channel/pubspec.yaml
modified:   examples/platform_channel_swift/pubspec.yaml
modified:   examples/stocks/pubspec.yaml
modified:   packages/flutter/lib/src/services/message_codecs.dart
modified:   packages/flutter/pubspec.yaml
modified:   packages/flutter_driver/pubspec.yaml
modified:   packages/flutter_goldens/pubspec.yaml
modified:   packages/flutter_localizations/pubspec.yaml
modified:   packages/flutter_test/pubspec.yaml
modified:   packages/flutter_tools/pubspec.yaml
modified:   packages/fuchsia_remote_debug_protocol/pubspec.yaml

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    OLDSDK.zip

no changes added to commit (use "git add" and/or "git commit -a")
  

После выполнения вышеуказанной задачи теперь попробуйте снова обновить Flutter, но снова появилась ошибка, упомянутая ниже

 My-Mac:flutter admin$ flutter upgrade
    Building flutter tool...
    Because flutter_tools depends on sockjs_client 0.3.5 which doesn't match any versions, version solving failed.
    Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds... (9 tries left)
    .
    .
    Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds... (1 tries left)
    Command 'pub upgrade' still failed after 10 tries, giving up.
  

Ответ №1:

Flutter использует git для управления SDK. Вам нужно будет просмотреть свой репозиторий, расположенный в $ HOME / development / flutter. Вы можете использовать команду git для проверки статуса повторной публикации. Например,

 $ git status
  

Чтобы увидеть ваши локальные изменения

 $ git branch
  

Чтобы увидеть, какую ветку вы используете.

Следующие шаги могут помочь вам, когда вы обнаружите, что изменили что-то незафиксированное, но вы хотели бы отменить все изменения, чтобы просто переключиться на последнюю версию (master).

 $ git reset --hard HEAD
  

Чтобы отменить все ваши изменения.

 $ git checkout master
  

Для переключения на главную ветку

 $ git pull
  

Чтобы отключить и синхронизировать все фиксации на сервере.

Ответ №2:

У вас есть некоторые несогласованные изменения в flutter SDK, если вы хотите удалить эти изменения и обновить flutter, вы можете выполнить принудительное обновление

flutter upgrade -f

Принудительно обновите ветку flutter, потенциально отбрасывая локальные изменения.

Комментарии:

1. Это работает только при наличии новой версии. Если вы используете последнюю версию, это ничего не делает,.

2. В итоге у меня это сработало

3. @under когда вы уже используете последнюю версию, что это должно делать?

Ответ №3:

Возможно, вы случайно отредактировали код flutter.

Чтобы исправить это, перейдите в свою папку flutter, это должно быть /Users / admin / Desktop / SDK / flutter

и проверьте любые изменения с помощью run

 git status
  

Если что-то изменится, в вашем случае вы внесли изменения в packages / flutter / lib / src / services / message_codecs.dart, просто отмените это с помощью :

 git checkout -- packages/flutter/lib/src/services/message_codecs.dart