[Oh My Zsh] Would you like to check for updates?
Type Y to update oh-my-zsh: Y
Upgrading Oh My Zsh
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
There was an error updating. Try again later?
:+1: Я тоже с этим сталкиваюсь…
То же самое
У меня та же проблема. Как я могу это исправить ?
У меня такая же проблема, что мне делать?
Перейдите в свой каталог .oh-my-zsh и выполните «git status», чтобы увидеть, есть ли какие-либо изменения, которые вы внесли в существующие файлы. Если они есть, я думаю, вам придется отменить эти изменения, прежде чем вы сможете обновить.
Я это уже исправил, попробуйте удалить опцию «—rebase» в tools/upgrade.sh
не работал для меня. есть некоторые конфликты, и я должен исправить их вручную
Скорее всего, это происходит из-за того, что вы что-то редактировали в своем каталоге .oh-my-zsh, но не зафиксировали это.
1) Перейдите в каталог.
2) Запустите «git status». Он должен отображать список измененных файлов.
3) Поместите эти файлы с помощью «git add
4) Зафиксируйте эти изменения с помощью «git commit -m
Вы должны быть в состоянии обновить сейчас.
Необязательно: после шага 2 вы можете просто запустить «git commit -a -m
Это сработало для меня, и я надеюсь, что это сработает и для кого-то еще. Никаких кавычек или <> в этих командах (на всякий случай (:)
@ODelibalta Я сделал это безуспешно. есть некоторые конфликты. Как я могу заставить эту перезагрузку?
Пытаться
git stash
а затем запустите обновление, а затем
git stash pop
после этого, чтобы вернуть ваши изменения.
Я понял. Я просто разрешаю некоторые конфликты, и git rebase --continue.
Если это происходит при слиянии, я думаю, что лучше всего посмотреть, в чем конфликт, и исходить оттуда. Может быть что-то более важное, чем изменения, внесенные в вашу локальную главную ветку. Если вы не хотите этого делать, используйте команды stash. По сути, он делает снимок изменений и возвращает вашу ветку (ту, где находится голова) в состояние, в котором нет неустановленных изменений. После того, как вы спрячете свои неустановленные файлы на стороне, запустите обновление, а затем запустите git stash apply, который должен применить тайник к файлам.
http://git-scm.com/book/en/Git-Tools-Stashing
Я все же предлагаю сначала взглянуть на конфликты слияния и посмотреть, насколько они важны по сравнению с тем, что у вас есть.
У меня есть эта проблема без неустановленных изменений в моем каталоге...
git статус внутри ~/.oh-my-zsh
дает:
ничего не коммитить, рабочий каталог чист.
Тем временем я просто удалил каталог и повторно клонировал его.
Теперь это работает.
Закрытие этого в # 2568.
@ericchen0121 +1
Я пытаюсь удалить опцию «—rebase» в tools/upgrade.sh. Позже обновите oh-my-zsh, успешно получите новый тип. Позже поймите, что более лучший способ — «cd .oh_my_zsh» -> «git add ."->"git commit -m "изменить настройку" "-> так что вы должны обновить oh-my-zsh
Та же проблема... Одно исправление лайнера.
cd "$ZSH" && git stash && upgrade_oh_my_zsh
Спасибо, РасселБрэдли :+1:
Один лайнер решил мою проблему. Спасибо, Рассел Брэдли!
Спасибо, РасселБрэдли :+1:
И не забудьте git stash pop
после обновления, чтобы повторно применить изменения (при желании).
Спасибо @RussellBradley - это работает!
@ODelibalta Это работает! Спасибо!
$ sudo git reset --hard
исправил это для меня.
Спасибо, РасселБрэдли :+1:
Спасибо @RussellBradley :+1:
если что-то из вышеперечисленного не работает, попробуйте это
cd ~/.oh-my-zsh
git config core.filemode false
Спасибо, РасселБрэдли!
Спасибо @RussellBradley
Спасибо, РасселБрэдли!
Спасибо @РасселБрэдли.
Я работаю над ubuntu bash для Windows 10 , поэтому изменения git, которые у меня были, были связаны с запуском dos2unix
во всем каталоге, чтобы исправить проблему с символом ^M
.
После успешного обновления вы можете запустить
cd $ZSH
find . -type f -print0 | xargs -0 dos2unix
Чтобы исправить ошибки, связанные с символом ^M
.
Улучшенное однострочное решение:
cd "$ZSH" && git stash && upgrade_oh_my_zsh && git stash pop
Спасибо @RussellBradley
:+1:
@ODelibalta прав , если вы касаетесь своих изменений..
1. Перейдите в каталог .oh-my-zsh/
.
2. Запустите git status
. Он должен отображать список измененных файлов.
3. Подготовьте эти файлы с помощью git add [filename(s)]
4. Зафиксируйте эти изменения с помощью git commit -m
а затем обновите zsh с помощью команды upgrade_oh_my_zsh
.
наслаждаться!..
Не забудьте поп, иначе вы потеряете изменения в своих темах.
cd "$ZSH" && git stash && upgrade_oh_my_zsh && git stash pop
Почему нет возможности сделать это автоматически?
Для тех, кто попадает сюда при использовании babun в Windows, я рекомендую использовать метод @kayoub5 для исправления этого (скопировано ниже):
cd ~/.oh-my-zsh
git config core.filemode false
Затем просто дайте ему запустить следующее обновление.
Моя проблема в OSX заключалась в том, что у меня был файл .DS_Store
, автоматически сгенерированный внутри ~/.oh_my_zsh
. Удалил эти rm .DS_Store
, а затем upgrade_oh_my_zsh
и все.
Был аналогичный опыт с oh_my_zsh
. Не понял, что установка и обновление привязаны к репо. Поскольку я изменил приглашение CLI в themes/agnoster.zsh-theme
, оно идентифицируется как неотслеживаемые изменения и приводит к сбою обновления. На данный момент для меня работают следующие шаги:
# Step 1: stash the untracked change
cd ~/.oh-my-zsh && git stash
# Step 2: Update by typing the following line in terminal
upgrade_oh_my_zsh
# Step 3: stash pop to recover untracked change
git stash pop
Файл custom/example.zsh
был изменен. Как и многие другие, я спрятал его, и обновление сработало.
Это просто мнение, но было бы лучше, если бы после сообщения об ошибке была добавлена новая строка с текстом вроде _"(Oh My Zsh git repo): ~/.oh-my-zsh"_ так что люди любят меня и большинство людей тем, кто любит этот проект, но не является мейнтейнером или экспертом по *Zsh, не нужно его гуглить.
Спасибо, работает @RussellBradley
Та же проблема... Одно исправление лайнера.
cd "$ZSH" && git stash && upgrade_oh_my_zsh
Спасибо @RussellBradley
Спасибо @RussellBradley !!
$ cd "$ZSH" && git stash
error: 'custom/example.zsh' is beyond a symbolic link
fatal: Unable to process path custom/example.zsh
Cannot save the current worktree state
Вызвано операцией макетирования .
Если вы подтвердите, чтобы игнорировать все изменения, внесенные в макет.
cd "$ZSH" && git reset --hard origin/HEAD && upgrade_oh_my_zsh
должен решить эту проблему.
Самый полезный комментарий
-Терминал должен читать: ".oh-my-zsh git:(master)". Если это так, перейдите к шагу 3.
-Если вас не беспокоят изменения состояния файла, вы можете «спрятать» эти изменения, выполнив шаг 4.