aktualizacja aktualizacji: następujące nie śledzone pliki działającego drzewa zostaną zastąpione przez scalenie:


369

Próbowałem uruchomić brew updatei pojawia się błąd, że moje lokalne zmiany zostaną utracone, jeśli się scalę. Próbowałem zatwierdzić moje lokalne zmiany (nie pamiętam, żeby je wprowadzać, ale to już jakiś czas), a to pogorszyło sytuację.

Oto wynik:

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

Odpowiedzi:


738

Nie zapomnij pobrać źródła !!!

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

Wyjaśnienie dla zainteresowanych:

To, co się dzieje, polega na tym, że próbujesz zaktualizować napar, ale sam napar albo jest nieaktualny (prawdopodobnie), nastąpiła zmiana uprawnień w wyniku aktualizacji systemu operacyjnego (prawdopodobnie również), albo napar jest nieco uszkodzony (mało prawdopodobny). Ponieważ samo parzenie jest repozytorium git, musisz zaktualizować lub zresetować parzenie do wersji master. brew [domyślnie] znajduje się w /usr/localfolderze, więc ty

  1. Przejdź do tego folderu [pierwsze polecenie], które również powinno zaktualizować uprawnienia (jeśli nie patrz poniżej)
  2. Pobierz źródło [drugie polecenie], co oznacza aktualizację LOKALNEJ zdalnej gałęzi brew
  3. Twardy reset [trzecia komenda] oparty na gałęzi REMOTE master (która również korzysta z twoich bieżących uprawnień).

Możesz także wykonać chownpierwsze polecenie, jeśli jesteś w profilu innym niż sudo lub admin
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

Aby zrozumieć git reset, zapoznaj się z tym artykułem .


3
Musiałem to zrobić, git fetch originzanim reset zadziałał. Dzięki. Zabawne, jak dodano tę odpowiedź w ciągu ostatniego dnia, na szczęście!
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
Zajrzyj na ten github.com/mxcl/homebrew/wiki/Common-Issues Błąd został opisany i jak go naprawić.
Stephane Paquet

11
Udało się, ale musiałem zrobić ostatni krok zsudo
altumano

3
wciąż mi się to zdarza regularnie, w rzeczywistości musiałem powtórzyć te kroki 3 razy w ciągu ostatnich kilku miesięcy. Dość denerwujące, jest przydatne, że SO ma ulubioną funkcję (która mówi, że błąd Google powoduje, że ten post pojawia się zwykle jako pierwszy wynik)
całkowicieNotLizards

107

Miałem podobny problem kilka tygodni temu próbując zaktualizować starą instalację homebrew. Robiąc to:

git reset --hard origin/master

w /usr/localstałe to dla mnie.

Wygląda na to, że inni też mieli ten problem. Masz spojrzał na którekolwiek z proponowanych obejścia tutaj ?


Pracował jak mistrz. Dziękuję też za link!
Tyler DeWitt

Uwaga dla innych: spróbuj uruchomić „git fetch origin” zgodnie z sugestią w drugiej odpowiedzi - tylko zrobienie tego poprawnie naprawiło ten problem dla mnie (nie było oczywistego problemu bez „git fetch origin” innego niż napar nie widzący żadnych aktualizacji;) ).
Gilead

Właśnie natknąłem się na ten błąd parzenia dziś rano. Trochę googlowania zaprowadziło mnie tutaj. Ta odpowiedź całkowicie rozwiązała mój problem. Dzięki!
mem

2
najpierw może trzeba mieć do cd usr/locali git remote add origin https://github.com/mxcl/homebrew.gitzobaczyć również stackoverflow.com/questions/6024671/...
s2t2

11

Dodaję swoje osobiste doświadczenie, ponieważ wydaje się nieco bezpieczniejsze niż to, co zaproponowano w 2012 roku:

  1. Uruchom brew doctor.
  2. Jeśli pojawi się następujące ostrzeżenie:

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

    biegać:

    sudo chown -R `whoami` /usr/local
    

    naprawić problemy z uprawnieniami (jak sugerował również Chris Frisina). W końcu uruchom brew doctorponownie, aby upewnić się, że ostrzeżenie zniknęło.

  3. Teraz powinieneś mieć

    Warning: You have uncommitted modifications to Homebrew
    

    które mogą być rozwiązane przez

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

    jak sugeruje sam Dr.Brew. Polecenie ukrywa niezatwierdzone modyfikacje, abyś mógł wrócić i je odzyskać w razie potrzeby. Wydawało mi się to bezpieczniejsze niż git reset --hard origin/masterdla mnie.

  4. Jeśli chcesz, sprawdź oficjalny przewodnik rozwiązywania problemów, jeśli kroki sugerowane tutaj i przez innych użytkowników SO nie rozwiązują Twojego problemu.


cd / usr / local / Library && git stash && git clean -d -f, a następnie aktualizacja brew naprawiła to dla mnie
at0mzk

0

Podobna odpowiedź, ale jeśli masz pliki, które nie są już śledzone, musisz wykonać dodatkowy krok od /usr/localuruchomienia

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

0

To podejście może być prostsze niż niektóre. To wymaga:

  • naprawienie problemu z git, abyś mógł ponownie przekazać zarządzanie zmianami.
  • brak ręcznego przenoszenia plików lub katalogów.
  • brak ręcznej regulacji uprawnień do plików lub katalogów.

Kroki (z notatkami dla tych, którzy chcą wyjaśnień):

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 

Omówienie:
z tego, co mogę powiedzieć, faktyczną przyczyną tego problemu jest zmiana adresu URL repozytorium. Jest teraz brewi było brew.git. (Pełny aktualny adres URL: https://github.com/Homebrew/brew )

Uwaga 1: To pierwsze polecenie zabierze cię z dowolnego miejsca w strukturze plików do odpowiedniego katalogu. Struktura katalogów jest dla mnie inna niż to, co pokazują inne (Mac OS 10.11.16), ale przy tym poleceniu różnice te nie powinny mieć znaczenia.

Uwaga 2: To drugie polecenie dodaje poprawny zdalny adres URL do nowego aliasu; Zrobiłem to na wypadek, gdyby to podejście nie spełniło moich oczekiwań i ponownie potrzebowałem poprzedniego adresu. Ponieważ nowy pilot zadziałał, zaproszę kogoś innego do skomentowania po prostu zmiany adresu URL aliasu według pochodzenia. Z przyjemnością zaktualizuję odpowiedź, aby odzwierciedlić to, co zadziałało.

Uwaga 3: To czwarte polecenie ma dokładnie pożądany rezultat: zgłasza dużą liczbę aktualizacji, w tym szczególnie ładny raport „==> Migracja HOMEBREW_REPOSITORY do / usr / local / Homebrew!” (podkreślają swoje).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.