atualização de distribuição: Os seguintes arquivos da árvore de trabalho não rastreados seriam substituídos por mesclagem:

369

Tentei executar brew updatee recebo um erro sobre minhas alterações locais que seriam perdidas se eu mesclasse. Tentei confirmar minhas alterações locais (não me lembro de fazer nenhuma, mas já faz um tempo), e isso piorou as coisas.

Aqui está a saída:

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
Tyler DeWitt
fonte

Respostas:

738

Não se esqueça de buscar a origem !!!

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

Explicação, para os interessados:

O que acontece é que você está tentando atualizar o brew, mas o próprio brew não está atualizado (provável), há uma alteração nas permissões por meio de alguma atualização do sistema operacional (também provável) ou o brew está ligeiramente corrompido (improvável). Como o brew em si é um repositório git, é necessário atualizar ou redefinir o brew para a versão principal do ramo. brew [por padrão] está localizado na /usr/localpasta, para que você

  1. Vá para a pasta [primeiro comando], que também deve atualizar as permissões (se não for exibida abaixo)
  2. Busque a origem [segundo comando], que significa atualizar sua versão LOCAL da ramificação remota do brew
  3. Reinicialização total [terceiro comando] com base na ramificação mestre REMOTE (que também usa suas permissões atuais).

Você também pode executar chowno primeiro comando se estiver em um perfil que não seja do sudo ou do administrador
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

Para entender o git reset, dê uma olhada neste artigo .

Chris Frisina
fonte
3
Eu tinha que fazer git fetch originantes da redefinição funcionar. Obrigado. Engraçado como essa resposta foi adicionada no dia anterior, que sorte!
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
Dê uma olhada neste github.com/mxcl/homebrew/wiki/Common-Issues O erro é descrito e como corrigi-lo também.
Stephane Paquet
11
Funcionou, mas eu tinha que fazer a última etapa comsudo
altumano
3
isso ainda acontece comigo regularmente, de fato, eu precisei repetir essas etapas três vezes nos últimos meses. Bastante irritante, é útil que o SO tenha um recurso favorito (que disse que pesquisar no erro traz esse post como primeiro resultado geralmente)
totallyNotLizards
107

Eu tive um problema semelhante há algumas semanas tentando atualizar uma instalação antiga do homebrew. Fazendo isso:

git reset --hard origin/master

em /usr/localcorrigi-lo para mim.

Parece que outras pessoas também tiveram esse problema. Você examinou alguma das soluções propostas aqui ?

Joe Holloway
fonte
Trabalhou como um campeão. Obrigado pelo link também!
Tyler DeWitt
Nota para outras pessoas: tente executar o 'git fetch origin', conforme sugerido na outra resposta - somente isso corrigiu corretamente esse problema para mim (não havia problema óbvio sem o 'git fetch origin', além de o brew não exibir nenhuma atualização;) )
Gilead
Acabei de encontrar este erro de fermentação esta manhã. Um pouco de pesquisa me levou até aqui. Esta resposta resolveu totalmente o meu problema. Obrigado!
Memoht
2
primeiro você pode ter que ver cd usr/locale git remote add origin https://github.com/mxcl/homebrew.gittambém stackoverflow.com/questions/6024671/…
s2t2
11

Estou adicionando minha experiência pessoal, pois parece um pouco mais seguro do que o proposto em 2012:

  1. Corra brew doctor.
  2. Se você receber o seguinte aviso:

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

    corre:

    sudo chown -R `whoami` /usr/local
    

    para corrigir os problemas de permissão (como sugerido também por Chris Frisina). Eventualmente, execute brew doctornovamente para garantir que o aviso foi apagado.

  3. Agora, você deve ter um

    Warning: You have uncommitted modifications to Homebrew
    

    que pode ser resolvido por

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

    como sugerido pelo próprio Dr.Brew. O comando esconde as modificações não confirmadas para que você possa voltar e recuperá-las, se necessário. Parecia mais seguro do que git reset --hard origin/masterpara mim.

  4. Se desejar, consulte o guia oficial de solução de problemas se as etapas sugeridas aqui e por outros usuários de SO não resolverem o seu problema.

furins
fonte
cd / usr / local / Library && git stash de && git -f -d limpo e, em seguida, atualização bebida fixa-lo para mim
at0mzk
0

Resposta semelhante, mas se você tiver arquivos que não são mais controladas que você precisa passo adicional para que a partir /usr/localrun

git fetch origin
git clean -f
git reset --hard origin/master
Haris Krajina
fonte
0

Essa abordagem pode ser mais simples do que algumas. Envolve:

  • corrigindo um problema do git para que você possa delegar novamente o gerenciamento de alterações.
  • nenhuma movimentação manual de arquivos ou diretórios.
  • sem ajustes manuais de permissões de arquivo ou diretório.

Passos (com notas para quem quer explicações):

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 

Visão geral:
Pelo que sei, a causa real desse problema é uma alteração no URL do repositório. É agora brewe foi brew.git. (URL completo e atualizado: https://github.com/Homebrew/brew )

Nota 1: Este primeiro comando leva você de qualquer lugar da estrutura de arquivos ao diretório correto. A estrutura de diretórios é diferente para mim do que os outros mostram acima (Mac OS 10.11.16), mas com este comando, essas diferenças não devem importar.

Nota 2: este segundo comando adiciona o URL remoto correto a um novo alias; Fiz isso apenas no caso de essa abordagem não atingir o que eu queria e precisar do endereço anterior novamente. Como o novo controle remoto funcionou, convidarei alguém para comentar sobre como alterar o URL com alias por origem. Felizmente, atualizarei a resposta para refletir o que funcionou para você.

Nota 3: Este quarto comando tem exatamente o resultado desejado: ele relata um grande número de atualizações, incluindo o relatório particularmente agradável de "==> Migrado HOMEBREW_REPOSITORY para / usr / local / Homebrew!" (ênfase deles).

Kay V
fonte