Por que atualizar o Oh My Zsh me dá um erro sobre o rebase com alterações não planejadas?

Por que atualizar o Oh My Zsh me dá um erro sobre o rebase com alterações não planejadas?

Abri uma janela de terminal e Oh My Zsh queria verificar se há atualizações. Digitei Ysim e recebi a mensagem de erro:

Não é possível extrair com rebase: você tem alterações não preparadas.
Por favor, comprometa-os ou guarde-os.

Eu tentei git statuse o Git me disse que o diretório atual não era um repositório (o que não me surpreendeu).

Então, do que está reclamando?

Responder1

Provavelmente você fez alterações nos arquivos de configuração. Vá para o seu oh-my-zshdiretório e digite git status.

Resultados para mim (mudei um dos temas):

╭─ 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")

Você verá que alguns arquivos foram modificados.

Você pode digitar git stashpara se livrar temporariamente dessas alterações e tentar atualizar novamente.

Responder2

Aqui está o que eu tive que fazer para consertar:

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

Não se esqueça do "." no final da 2ª linha

Responder3

Solução Oneliner

cd "$ZSH" && git stash && upgrade_oh_my_zsh && git stash pop
  1. cd "$ZSH"altere seu diretório ZSH atual.
  2. git stashprepare suas mudanças locais e volte para master via git.
  3. upgrade_oh_my_zshatualizar ohMyZsh
  4. git stash poppara manter as alterações, provavelmente seus temas.

Responder4

Se você concordar em descartar qualquer uma das alterações locais, execute:

git checkout -f master
git pull

Isso garante que você esteja atualizado e remove qualquer bagunça da sua máquina local.

informação relacionada