Почему при обновлении Oh My Zsh возникает ошибка о перебазировании с неподготовленными изменениями?

Почему при обновлении Oh My Zsh возникает ошибка о перебазировании с неподготовленными изменениями?

Я открыл окно терминала, и Oh My Zsh захотел проверить наличие обновлений. Я ввел Yyes, а затем получил сообщение об ошибке:

Невозможно вытащить с rebase: у вас есть неподготовленные изменения.
Пожалуйста, зафиксируйте или спрячьте их.

Я попробовал git status, и Git сообщил мне, что текущий каталог не является репозиторием (что меня не удивило).

Так на что же он жалуется?

решение1

Вы, вероятно, внесли изменения в файлы конфигурации. Перейдите в свой oh-my-zshкаталог и введите git status.

Результаты для меня (я изменил одну из тем):

╭─ jane  ~
╰─ λ cd .oh-my-zsh                                                      1:57:10
╭─ jane  ~/.oh-my-zsh  ‹master*›
╰─ λ git status                                                         1:57:17
On branch master
Your branch is up-to-date with 'origin/master'.
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:   themes/bira.zsh-theme

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

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

Вы можете ввести команду git stash, чтобы временно избавиться от этих изменений, и повторить попытку обновления.

решение2

Вот что мне пришлось сделать, чтобы это исправить:

cd ~/.oh-my-zsh/
git add .
git commit -m "commit message"
upgrade_oh_my_zsh

Не забудьте "." в конце 2-й строки.

решение3

Решение Oneliner

cd "$ZSH" && git stash && upgrade_oh_my_zsh && git stash pop
  1. cd "$ZSH"изменить текущий каталог ZSH.
  2. git stashподготовьте локальные изменения и вернитесь в master через git.
  3. upgrade_oh_my_zshобновление ohMyZsh
  4. git stash popчтобы сохранить изменения, вероятно, ваши темы.

решение4

Если вы не против удаления каких-либо локальных изменений, выполните:

git checkout -f master
git pull

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

Связанный контент