Brew update: Следующие неработающие рабочие файлы дерева будут перезаписаны с помощью объединения:

Я попытался запустить 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

Ответ 1

Не забудьте взять начало координат!!!

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

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

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

  • Перейдите в эту папку [первая команда], которая также должна обновлять разрешения (если не видеть ниже)
  • Извлеките исходную [вторую команду], которая означает обновление вашей локальной версии удаленной ветки brew
  • Жесткая reset [3-я команда] на основе ведущей ветки REMOTE (которая также использует ваши текущие разрешения).

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

Чтобы понять git reset, посмотрите в этой статье.

Ответ 2

У меня была аналогичная проблема пару недель назад, пытаясь обновить старую версию homebrew. Выполнение этого действия:

git reset --hard origin/master

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

Похоже, что у других людей тоже была эта проблема. Просмотрели ли вы какие-либо из предложенных обходных решений здесь?

Ответ 3

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

  • Запустите brew doctor.
  • Если вы получите следующее предупреждение:

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

    пробег:

    sudo chown -R `whoami` /usr/local
    

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

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

    Warning: You have uncommitted modifications to Homebrew
    

    которая может быть решена с помощью

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

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

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

Ответ 4

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

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

Ответ 5

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

  • исправление проблемы 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 с псевдонимом по происхождению. Я с удовольствием обновлю ответ, чтобы отразить то, что сработало для вас.

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