Обновление brew: следующие неотслеживаемые файлы рабочего дерева будут перезаписаны слиянием:


369

Я попытался запустить, brew updateи я получил ошибку о моих локальных изменениях, которые были бы потеряны, если бы я слился. Я пытался зафиксировать свои локальные изменения (не помню, чтобы что-то делал, но это было какое-то время), и это ухудшало ситуацию.

Вот вывод:

MBP:Library User$ sudo brew update
error: The following untracked working tree files would be overwritten by merge:
    Library/Aliases/fastcgi
    Library/Aliases/htop
    Library/Aliases/nodejs
    Library/Aliases/ocio
    Library/Aliases/oiio
    Library/Aliases/pgrep
    Library/Aliases/pkill
    Library/Contributions/cmds/brew-beer.rb
    Library/Contributions/cmds/brew-dirty.rb
    Library/Contributions/cmds/brew-graph
    Library/Contributions/cmds/brew-grep
    Library/Contributions/cmds/brew-leaves.rb
    Library/Contributions/cmds/brew-linkapps.rb
    Library/Contributions/cmds/brew-man
    Library/Contributions/cmds/brew-mirror-check.rb
    Library/Contributions/cmds/brew-missing.rb
    Library/Contributions/cmds/brew-pull.rb
    Library/Contributions/cmds/brew-readall.rb
    Library/Contributions/cmds/brew-server
    Library/Contributions/cmds/brew-services.rb
    Library/Contributions/cmds/brew-switch.rb
    Library/Contributions/cmds/brew-test-bot.commit.html.erb
    Library/Contributions/cmds/brew-test-bot.css
    Library/Contributions/cmds/brew-test-bot.index.html.erb
    Library/Contributions/cmds/brew-test-bot.rb
    Library/Contributions/cmds/brew-tests.rb
    Library/Contributions/cmds/brew-unpack.rb
    Library/Contributions/cmds/brew-which.rb
    Library/Contributions/install_homebrew.rb
    Library/Formula/abcl.rb
    Library/Formula/abyss.rb
    Library/Formula/akka.rb
    Library/Formula/apollo.rb
    Library/Formula/appledoc.rb
    Library/Formula/arangodb.rb
    Library/Formula/autoconf.rb
    Library/Formula/automake.rb
    Library/Formula/avidemux.rb
    Library/Formula/bind.rb
    Library/Formula/bsdconv.rb
    Library/Formula/bsdmake.rb
    Library/Formula/camellia.rb
    Library/Formula/cbmbasic.rb
    Library/Formula/cdo.rb
    Library/Formula/checkstyle.rb
    Library/Formula/cifer.rb
    Library/Formula/clhep.rb
    Library/Formula/collada-dom.rb
    Library/Formula/crash.rb
    Library/Formula/crossroads.rb
    Library/Formula/css-crush.rb
    Library/Formula/curlftpfs.rb
    Library/Formula/dart.rb
    Library/Formula/dasm.rb
    Library/Formula/dfc.rb
    Library/Formula/di.rb
    Library/Formula/dsniff.rb
    Library/Formula/dupx.rb
    Library/Formula/dwatch.rb
    Library/Formula/eprover.rb
    Library/Formula/ext2fuse.rb
    Library/Formula/ezlupdate.rb
    Library/Formula/f3.rb
    Library/Formula/fastx_toolkit.rb
    Library/Formula/fceux.rb
    Library/Formula/findbugs.rb
    Library/Formula/freerdp.rb
    Library/Formula/funcoeszz.rb
    Library/Formula/fwknop.rb
    Library/Formula/gabedit.rb
    Library/Formula/gbdfed.rb
    Library/Formula/gconf.rb
    Library/Formula/git-encrypt.rb
    Library/Formula/glm.rb
    Library/Formula/gmap-gsnap.rb
    Library/Formula/gnu-arch.rb
    Library/Formula/gnunet.rb
    Library/Formula/gobby.rb
    Library/Formula/gptfdisk.rb
    Library/Formula/griffon.rb
    Library/Formula/grok.rb
    Library/Formula/gtk-chtheme.rb
    Library/Formula/gtkglextmm.rb
    Library/Formula/gtmess.rb
    Library/Formula/hg-flow.rb
    Library/Formula/hqx.rb
    Library/Formula/htop-osx.rb
    Library/Formula/htpdate.rb
    Library/Formula/imap-uw.rb
    Library/Formula/iozone.rb
    Library/Formula/ipbt.rb
    Library/Formula/ipe.rb
    Library/Formula/ispc.rb
    Library/Formula/ispell.rb
    Library/Formula/jigdo.rb
    Library/Formula/jing.rb
    Library/Formula/jless.rb
    Library/Formula/jpeginfo.rb
    Library/Formula/konoha.rb
    Library/Formula/legit.rb
    Library/Formula/libcouchbase.rb
    Library/Formula/libcuefile.rb
    Library/Formula/libextractor.rb
    Library/Formula/libglademm.rb
    Library/Formula/libgtextutils.rb
    Library/Formula/libinfinity.rb
    Library/Formula/libkate.rb
    Library/Formula/libqalculate.rb
    Library/Formula/libqglviewer.rb
    Library/Formula/libreplaygain.rb
    Library/Formula/libtool.rb
    Library/Formula/libvbucket.rb
    Library/Formula/libvo-aacenc.rb
    Library/Formula/libxmi.rb
    Library/Formula/lifelines.rb
    Library/Formula/makeicns.rb
    Library/Formula/mathgl.rb
    Library/Formula/meld.rb
    Library/Formula/mesalib-glw.rb
    Library/Formula/minisat.rb
    Library/Formula/minuit2.rb
    Library/Formula/mobile-shell.rb
    Library/Formula/movgrab.rb
    Library/Formula/mp3cat.rb
    Library/Formula/mpich2.rb
    Library/Formula/mrfast.rb
    Library/Formula/musepack.rb
    Library/Formula/ndiff.rb
    Library/Formula/net6.rb
    Library/Formula/nrpe.rb
    Library/Formula/nuttcp.rb
    Library/Formula/oath-toolkit.
Updating aa07533..3f070ef
Aborting
Error: Failed while executing git pull  origin refs/heads/master:refs/remotes/origin/master

Ответы:


738

Не забудьте получить происхождение !!!

$ cd /usr/local
$ git fetch origin
$git reset --hard origin/master

Объяснение, для тех, кто заинтересован:

Происходит следующее: вы пытаетесь обновить brew, но сам brew либо не обновлен (вероятно), либо произошли изменения в разрешениях через некоторое обновление ОС (также вероятно), либо brew слегка поврежден (маловероятно). Поскольку сам brew является git-репо, вы должны обновить или сбросить brew до версии master ветки. Brew [по умолчанию] находится в /usr/localпапке, поэтому вы

  1. Перейдите в эту папку [первая команда], которая также должна обновить разрешения (если не см. Ниже)
  2. Получите источник [вторая команда], что означает обновить вашу ЛОКАЛЬНУЮ версию удаленной ветви brew.
  3. Hard reset [3-я команда] на основе удаленной главной ветки (которая также использует ваши текущие права).

Вы также можете ввести chownпервую команду, если вы не в профиле sudo или admin
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

Чтобы понять git reset, взгляните на эту статью .


3
Пришлось git fetch originдо сброса сработать. Спасибо. Забавно, как этот ответ был добавлен в последний день, повезло мне!
ghoppe

2
/usr/local git fetch origin fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly
Рич Брэдшоу

2
Посмотрите на этот github.com/mxcl/homebrew/wiki/Common-Issues Ошибка описана и как ее исправить тоже.
Стефан Пакет,

11
Это сработало, но я должен был сделать последний шаг сsudo
altumano

3
это все еще случается со мной регулярно, но мне нужно было повторить эти шаги 3 раза за последние несколько месяцев. Весьма раздражает, но удобно, что у SO есть любимая функция (которая гласит, что поиск в сообщении об ошибке обычно приводит к этому сообщению в качестве первого результата)
totallyNotLizards

107

У меня была похожая проблема пару недель назад, когда я пытался обновить старую версию homebrew. Делая это:

git reset --hard origin/master

в /usr/localисправил это для меня.

Кажется, у других тоже была эта проблема. Вы просматривали какие-либо предлагаемые обходные пути здесь ?


Работал как чемпион. Спасибо за ссылку тоже!
Тайлер ДеВитт

Примечание для других: попробуйте запустить «git fetch origin», как предложено в другом ответе, - только сделав это, чтобы правильно решить эту проблему для меня (не было очевидной проблемы без «git fetch origin», кроме brew, не видевшего никаких обновлений;) ).
Галаад

Я только что столкнулся с этой ошибкой заваривания этим утром. Немного погуглив, привело меня сюда. Этот ответ полностью решил мою проблему. Спасибо!
памятка

2
сначала вам, возможно, придется это сделать cd usr/localи git remote add origin https://github.com/mxcl/homebrew.gitпосмотреть на stackoverflow.com/questions/6024671/…
s2t2

11

Я добавляю свой личный опыт, так как он кажется немного более безопасным, чем предложенный в 2012 году:

  1. Беги brew doctor.
  2. Если вы получите следующее предупреждение:

    Warning: The /usr/local directory is not writable.
    

    запустить:

    sudo chown -R `whoami` /usr/local
    

    исправить проблемы с разрешениями (как предложено также Крисом Фрисиной). В конце концов, запустите brew doctorснова, чтобы убедиться, что предупреждение исчезло.

  3. Теперь вы должны иметь

    Warning: You have uncommitted modifications to Homebrew
    

    это может быть решено

    cd /usr/local/Library && git stash && git clean -d -f
    

    как предложено самим доктором. Команда хранит незафиксированные изменения, чтобы вы могли вернуться и восстановить их при необходимости. Это казалось безопаснее, чем git reset --hard origin/masterмне.

  4. Если хотите, ознакомьтесь с официальным руководством по устранению неполадок, если шаги, предложенные здесь и другими пользователями SO, не решают вашу проблему.


cd / usr / local / Library && git stash && git clean -d -f, а затем обновление brew исправило это для меня
at0mzk

0

Аналогичный ответ, но если у вас есть файлы, которые больше не отслеживаются, вам нужен дополнительный шаг, чтобы /usr/localзапустить

git fetch origin
git clean -f
git reset --hard origin/master

0

Этот подход может быть проще, чем некоторые. Это включает в себя:

  • исправление проблемы с git, чтобы вы могли снова делегировать управление изменениями.
  • нет ручного перемещения файлов или каталогов.
  • нет ручной настройки прав доступа к файлам или каталогам.

Шаги (с примечаниями для тех, кто хочет объяснений):

cd $(brew --repository)                              // see Note 1 below
git remote add brew https://github.com/Homebrew/brew // see Note 2 below
git pull brew master                                 // promising fast-forward report!
brew update                                          // see Note 3 below 

Обзор.
Из того, что я могу сказать, фактическая причина этой проблемы - изменение URL репо. Это сейчас brewи было brew.git. (Полный актуальный URL: https://github.com/Homebrew/brew )

Примечание 1. Эта первая команда перенесет вас из любой части вашей файловой структуры в правильный каталог. Структура каталогов для меня отличается от того, что другие показывают выше (Mac OS 10.11.16), но с этой командой эти различия не должны иметь значения.

Примечание 2: эта вторая команда добавляет правильный удаленный URL к новому псевдониму; Я сделал это на тот случай, если этот подход не достиг желаемого, и мне снова понадобился предыдущий адрес. Так как новый пульт работал, я приглашаю кого-то еще прокомментировать простое изменение URL с псевдонимом origin. Я с удовольствием обновлю ответ, чтобы отразить то, что сработало для вас.

Примечание 3: Эта четвертая команда дает желаемый результат: она сообщает о большом количестве обновлений, включая особенно приятный отчет "==> Перенос HOMEBREW_REPOSITORY в / usr / local / Homebrew!" (акцент их).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.