当无论是自动更新还是手动upgrade_oh_my_zsh更新oh-my-zsh时,出现下面提示:
Updating Oh My Zsh
error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.
There was an error updating. Try again later?
这是因为修改了oh-my-zsh的git文件,
这时候我们有两种选择:
把变更commit掉,依此输入git add .
和git commit -m '对更改的描述'
即可;
或者使用git的储藏命令git stash
暂时将变更储藏起来,待更新完之后再使用git stash pop
命令将变更恢复就可以了。
> cd ~/.oh-my-zsh
> git status
> git stash
> upgrade_oh_my_zsh
> git stash pop
因为主题是我自己改的,所以果断选择commit掉它:git add .
,然后git commit -m 'theme change'
。
这时再次输入git status
就会发现目录干净了,没有任何未确认的更改。
下次再提示更新的时候,就可以正常升级oh-my-zsh了。
后知后觉:
到最后才想起来,oh-my-zsh也是通过命令行从github上下载安装的,更改主题配置的时候确实改动了一些内容,当时没有执行过commit命令,所以才会造成今天的这个问题。
ref:
1. http://atomzhao-blog.logdown.com/posts/1952762-zsh-terminal-upgrade-failed-solution