оновлення пивоварення: Злиття перезаписуються наступними файлами робочих дерев:


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

Пояснення для зацікавлених:

Що трапляється, це те, що ви намагаєтесь оновити варити, але сама заварка або не є актуальною (ймовірно), є зміни дозволів через деяке оновлення ОС (також, ймовірно), або варити трохи пошкоджено (малоймовірно). Оскільки заварка сама по собі є git repo, вам доведеться оновити або скинути заварку до версії головного відділення. brew [за замовчуванням] знаходиться в /usr/localпапці, так що ви

  1. Перейдіть до тієї папки [перша команда], яка також повинна оновити дозволи (якщо не див. Нижче)
  2. Вилучити походження [друга команда], що означає оновити свою локальну версію віддаленої гілки варити
  3. Жорсткий скидання [3-я команда] на основі головної гілки REMOTE (яка також використовує ваші поточні дозволи).

Ви також можете виконати chownпершу команду, якщо ви не користуєтеся судом або адміністратором
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$ $git reset --hard origin/master

Щоб зрозуміти скидання git, подивіться цю статтю .


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
Rich Bradshaw

2
Погляньте на цей github.com/mxcl/homebrew/wiki/Common-Issues Описана помилка та способи її виправлення.
Стефан Пакет

11
Це спрацювало, але мені довелося зробити останній крокsudo
altumano

3
це все ще трапляється зі мною регулярно, інфакт мені потрібно було повторити ці кроки 3 рази за останні кілька місяців. Досить дратує, що ТАК має улюблену функцію (яка сказала, що помилка в Google
заводить

107

У мене був подібний випадок кілька тижнів тому, намагаючись оновити стару інсталяцію домашньої версії. Робити це:

git reset --hard origin/master

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

Схоже, що інші люди теж мали цю проблему. Ви переглянули будь-який із запропонованих способів вирішення тут ?


Працював як чемпіон. Дякуємо також за посилання!
Тайлер Де Вітт

Зауважте іншим: спробуйте запустити "git fetch origin", як було запропоновано в іншій відповіді, - тільки зробивши це правильно, виправили цю проблему для мене (не було очевидної проблеми без "git fetch origin", крім того, що бровар не бачив жодних оновлень;) ).
Gilead

Я щойно вранці зіткнувся з помилкою заварки. Маленький гугл веде мене сюди. Ця відповідь повністю вирішила мою проблему. Дякую!
пам’ятка

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 / Бібліотека && git stash && git clean -d -f, а потім варити оновлення зафіксовано для мене
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-адресу, псевдонім за походженням. Я із задоволенням оновлю відповідь, щоб відобразити те, що працювало для вас.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.