Ohmyzsh: невозможно обновить

Созданный на 19 июл. 2013  ·  47Комментарии  ·  Источник: ohmyzsh/ohmyzsh

Перейти к решению

[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. Откройте терминал
  2. Введите «~/.oh-my-zsh», это должно изменить ваш каталог на каталог zsh.
    -Терминал должен читать: ".oh-my-zsh git:(master)". Если это так, перейдите к шагу 3.
  3. Введите «git status», чтобы увидеть, что ваш статус опережает master.
    -Если вас не беспокоят изменения состояния файла, вы можете «спрятать» эти изменения, выполнив шаг 4.
  4. Введите «git stash», чтобы сохранить прогресс в git и переместить голову обратно в мастер.
  5. Сделанный. Теперь вы сможете обновиться и в следующий раз, когда терминал вас попросит.

Все 47 Комментарий

:+1: Я тоже с этим сталкиваюсь…

То же самое

У меня та же проблема. Как я могу это исправить ?

У меня такая же проблема, что мне делать?

Перейдите в свой каталог .oh-my-zsh и выполните «git status», чтобы увидеть, есть ли какие-либо изменения, которые вы внесли в существующие файлы. Если они есть, я думаю, вам придется отменить эти изменения, прежде чем вы сможете обновить.

Я это уже исправил, попробуйте удалить опцию «—rebase» в tools/upgrade.sh

  1. Откройте терминал
  2. Введите «~/.oh-my-zsh», это должно изменить ваш каталог на каталог zsh.
    -Терминал должен читать: ".oh-my-zsh git:(master)". Если это так, перейдите к шагу 3.
  3. Введите «git status», чтобы увидеть, что ваш статус опережает master.
    -Если вас не беспокоят изменения состояния файла, вы можете «спрятать» эти изменения, выполнив шаг 4.
  4. Введите «git stash», чтобы сохранить прогресс в git и переместить голову обратно в мастер.
  5. Сделанный. Теперь вы сможете обновиться и в следующий раз, когда терминал вас попросит.

не работал для меня. есть некоторые конфликты, и я должен исправить их вручную

Скорее всего, это происходит из-за того, что вы что-то редактировали в своем каталоге .oh-my-zsh, но не зафиксировали это.

1) Перейдите в каталог.
2) Запустите «git status». Он должен отображать список измененных файлов.
3) Поместите эти файлы с помощью «git add"
4) Зафиксируйте эти изменения с помощью «git commit -m"

Вы должны быть в состоянии обновить сейчас.

Необязательно: после шага 2 вы можете просто запустить «git commit -a -m", который должен подготовить все неустановленные файлы и зафиксировать эти изменения (объединив шаги 3 и 4).

Это сработало для меня, и я надеюсь, что это сработает и для кого-то еще. Никаких кавычек или <> в этих командах (на всякий случай (:)

@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 должен решить эту проблему.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги