При попытке обновить Homebrew brew update
я получил следующую ошибку
error: The following untracked working tree files would be overwrittenby merge:
Library/Formula/argp-standalone.rb
Library/Formula/cocot.rb
Please move or remove them before you can merge.
Aborting
Updating e088818..5909e2c
Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master
Я нашел сообщение в блоге кем-то, у кого возникла похожая проблема после установки Mountain Lion (что я и сделал на этой неделе). Он объясняет, как он удалил файлы, указанные в сообщении об ошибке
I removed these files:
$ cd $(brew --prefix)
$ rm cocot.rb
However, removing these files didn't help with the brew update. Instead I had to manually update brew through git:
$ cd $(brew --prefix)
$ git fetch origin
$ git reset --hard origin/master
$ brew update
Already up-to-date.
Предполагая, что эти инструкции являются правильными (что я, возможно, не должен предполагать), я попытался следовать этим инструкциям и сделать
$ cd $(brew --prefix)
$ rm cocot.rb
Тем не менее, он сказал, что «файл не существует», когда я попытался Rm Cocot.rb
Одна вещь, в которой я не уверен - это cd $(brew --prefix)
те слова, которые я набираю, или мне нужно заменить префикс на что-нибудь? CD был успешным, поэтому я предполагаю, что он был правильным - он переместил меня в / usr / local, но не было файла для удаления. Содержимое / usr / local is
Cellar clamXav git mysql var Library doc heroku mysql-5.5.15-osx10.6-x86_64 README.md etc include rvm bin foreman lib share
В любом случае, вы знаете, как я могу исправить «brew update»
Обновление: после удаления файлов в соответствии с инструкциями favoretti и попытки chown -R <your_username> $(brew --prefix)/.git
, я получил следующую ошибку при запускеbrew update
error: The following untracked working tree files would be overwritten by merge:
Library/Aliases/gperftools
Library/Aliases/hashdeep
Library/Aliases/htop
Library/Aliases/nodejs
Library/Aliases/ocio
Library/Aliases/oiio
Library/Aliases/pgrep
Library/Aliases/pkill
Library/Aliases/qt4
Library/Aliases/twolame
Library/Aliases/wxwidgets
Library/Contributions/cmds/brew-aspell-dictionaries
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-ls-taps.rb
Library/Contributions/cmds/brew-man
Library/Contributions/cmds/brew-md5-to-sha1
Library/Contributions/cmds/brew-mirror-check.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.rb
Library/Contributions/cmds/brew-tests.rb
Library/Contributions/cmds/brew-unpack.rb
Library/Contributions/cmds/brew-which.rb
Library/Contributions/cmds/git
Library/Contributions/cmds/svn
Library/ENV/4.3/apr-1-config
Library/ENV/4.3/bsdmake
Library/ENV/4.3/c++
Library/ENV/4.3/c89
Library/ENV/4.3/c99
Library/ENV/4.3/cc
Library/ENV/4.3/clang
Library/ENV/4.3/clang++
Library/ENV/4.3/cpp
Library/ENV/4.3/g++
Library/ENV/4.3/gcc
Library/ENV/4.3/git
Library/ENV/4.3/i686-apple-darwin11-llvm-g++-4.2
Library/ENV/4.3/i686-apple-darwin11-llvm-gcc-4.2
Library/ENV/4.3/ld
Library/ENV/4.3/llvm-g++
Library/ENV/4.3/llvm-g++-4.2
Library/ENV/4.3/llvm-gcc
Library/ENV/4.3/llvm-gcc-4.2
Library/ENV/4.3/make
Library/ENV/4.3/mig
Library/ENV/4.3/sed
Library/ENV/4.3/svn
Library/ENV/4.3/xcrun
Library/ENV/libsuperenv.rb
Library/ENV/pkgconfig/leopard/libcrypto.pc
Library/ENV/pkgconfig/leopard/libcurl.pc
Library/ENV/pkgconfig/mountain_lion/libcurl.pc
Library/ENV/pkgconfig/mountain_lion/libexslt.pc
Library/ENV/pkgconfig/mountain_lion/libxml-2.0.pc
Library/ENV/pkgconfig/mountain_lion/libxslt.pc
Library/Formula/abcl.rb
Library/Formula/abcmidi.rb
Library/Formula/aiccu.rb
Library/Formula/akka.rb
Library/Formula/alac.rb
Library/Formula/alure.rb
Library/Formula/appledoc.rb
Library/Formula/arangodb.rb
Library/Formula/argp-standalone.rb
Library/Formula/argtable.rb
Library/Formula/autopano-sift-c.rb
Library/Formula/avian.rb
Library/Formula/avidemux.rb
Library/Formula/avro-cpp.rb
Library/Formula/aws-cloudsearch.rb
Library/Formula/aws-sns-cli.rb
Library/Formula/backupninja.rb
Library/Formula/bact.rb
Library/Formula/bam.rb
Library/Formula/basex.rb
Library/Formula/berkeley-db4.rb
Library/Formula/bind.rb
Library/Formula/blazeblogger.rb
Library/Formula/bochs.rb
Library/Formula/boost149.rb
Library/Formula/bsdconv.rb
Library/Formula/bsdmake.rb
Library/Formula/buildapp.rb
Library/Formula/bup.rb
Library/Formula/byacc.rb
Library/Formula/cadubi.rb
Library/Formula/camellia.rb
Library/Formula/casperjs.rb
Library/Formula/ccextractor.rb
Library/Formula/cconv.rb
Library/Formula/cdo.rb
Library/Formula/cdpr.rb
Library/Formula/cgvg.rb
Library/Formula/checkstyle.rb
Library/Formula/chordii.rb
Library/Formula/chruby.rb
Library/Formula/cifer.rb
Library/Formula/clhep.rb
Library/Formula/cntlm.rb
Library/Formula/cocot.rb
Library/Formula/cogl.rb
Library/Formula/collada-dom.rb
Library/Formula/crash.rb
Library/Formula/crossroads.rb
Library/Formula/crosstool-ng.rb
Library/Formula/css-crush.rb
Library/Formula/csync.rb
Library/Formula/ctemplate.rb
Library/Formula/curlftpfs.rb
Library/Formula/cutter.rb
Library/Formula/cvsutils.rb
Library/Formula/darkstat.rb
Library/Formula/darner.rb
Library/Formula/dart.rb
Library/Formula/dasm.rb
Library/Formula/debianutils.rb
Library/Formula/dfc.rb
Library/Formula/dgtal.rb
Library/Formula/dhcping.rb
Library/Formula/di.rb
Library/Formula/dmtx-utils.rb
Library/Formula/drip.rb
Library/Formula/dsniff.rb
Library/Fo
Aborting
Updating e088818..c1fbc29
Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master
Ответы:
источник
git add .
следующееgit stash
: Pcd $(brew --prefix)
и сброса стадии git с помощьюgit reset --hard HEAD
yourgit status
не возвращает рабочий каталог clean, вам также может понадобиться очистить состояние, запустивgit clean -df
.git reset --hard HEAD
(что не будет работать для меня), я сделалgit fetch --all
иgit reset --hard origin/master
Вам нужно сделать следующее:
А затем сделать
В основном, чтобы объяснить немного больше:
говорит
cd
изменить каталог на чтоbrew --prefix
будет выводить. Если вы попытаетесь выполнитьbrew --prefix
команду, вы должны увидеть что-то в строках:Таким образом, команда будет в этом случае эквивалентом
cd /usr/local
. Более новыеbrew
версии имеют формулы под префиксом установкиLibrary/Formula/
, поэтому вам нужно искать эти устаревшие / измененные файлы.Обратите внимание, что если вы изменили эти формулы самостоятельно по определенной причине (например, закрепление версии), это действие вернет их к значениям по умолчанию и может привести к нежелательным эффектам.
@TedPennings отметил в комментариях, что это работает для него, но его последовательность была:
my_username:admin
, т.е.sudo chown -R ted:admin $(brew --prefix)
git fetch origin
иgit reset --hard origin/master
источник
sudo git reset --hard
, другой, а лучший способ - исправить разрешения и сделатьchown -R <your_username> $(brew --prefix)/.git
drwxrwxr-x 16 root admin 646 Dec 27 20:30 /usr/local/
sudo chown -R ted:admin $(brew --prefix)
а затем запустить две команды git, указанные выше,git fetch origin
иgit reset --hard origin/master
Это вызвано старой ошибкой в
update
коде, которая уже давно исправлена. Однако природа ошибки требует, чтобы вы сделали следующее:Если вы
brew doctor
все еще жалуетесь о непринятых изменениях, также выполните эту команду:источник
Примечание: шаги 2 и 3 работали для меня, так как я сделал шаг 5 до 4, прежде чем я получил ошибку. Заварить обновление перед изменением владельца папки вызвало целую проблему.
источник
/usr/local
с другими разрешениями. Для меня это был MacPGP, который установил себя с правами суперпользователя./usr/local
разрешениями. Спасибо!У меня была похожая проблема, когда моя библиотека пакетов brew была загружена от имени пользователя root, а затем я не смог запустить brew update, поскольку git пожаловался на невозможность слить файл.
Решение было сделать: -
источник
Сброс хранилища brew должен быть наиболее эффективным способом, если вы не возражаете отказаться от возможных изменений формул, которые вы могли применить:
источник
Я смог исправить это на своем компьютере, добавив разрешение на запись группы администратора (и бит setgid) по следующим путям:
S устанавливает идентификатор группы при выполнении, чтобы права на запись не терялись в следующий раз, когда другой администратор обновит или обновит Homebrew.
Этот ответ несколько неполный, потому что, когда я пытаюсь это сделать,
brew cleanup --force
возникает проблема с разрешениями, когда Homebrew пытается удалить контент в / usr / local / Cellar /. (К сожалению, в настоящее время я не могу исследовать это дальше.)источник
Другой вариант - просто использовать
git stash
.Команда brew update выполняет a
git pull
, поэтому, если есть какие-либо измененные файлы (или даже атрибуты файлов, которые произошли со мной, когда я рекурсивно изменил разрешения в каталоге), вам нужно как-то исправить конфликты. Использованиеgit stash
это один из способов; он принимает любые изменения и откладывает их в сторону, чтобы вы фактически вернулись к последней обновленной версии репо. Homebrew 'location' является по умолчанию/usr/local
и устанавливается как git-репозиторий. Вы можете найти.git
папку, чтобы увидеть для себя. Я пишу сценарий удаления доморощенного напитка, который скоро будет размещен в моем профиле GitHub с дополнительной информацией.источник
примечание - для ПОЛЬЗОВАТЕЛЯ используйте команду who т.е. ваше имя пользователя
источник
sudo chown -R $USER /usr/local/bin
где добавление$
положит переменную env USER, которая содержит текущее имя USER.Этот подход может быть проще, чем некоторые. Это включает в себя:
Шаги (с примечаниями для тех, кто хочет объяснений):
Обзор.
Из того, что я могу сказать, действительной причиной этой проблемы является изменение 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!" (акцент их).
источник
brew update
.Этот пост помог мне после обновления до El Capitan. В моем случае
chown
не работало («zsh: команда не найдена: chown»), поэтому шаг 1 добавлял эту строку в мой .zshrc:export PATH="$PATH:/usr/sbin"
Я уже попробовал некоторые из наиболее популярных ответов выше, поэтому я почти уверен, что
git status
они станут чистыми к тому времени, когда я вставил критическую команду из поста в блоге:sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
источник
Это должно работать.
источник