374

実行しようとする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
4

5 に答える 5

743

オリジンを取得することを忘れないでください:

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

何が起こるかというと、brew を更新しようとしているが、brew 自体が最新ではない (可能性が高い)、OS の更新によって権限が変更されている (可能性が高い)、または brew がわずかに破損している (可能性は低い) ということです。brew 自体は git リポジトリなので、brew を master ブランチ バージョンに更新またはリセットする必要があります。brew [デフォルト] は/usr/local/Homebrewフォルダにあるので、

  1. そのフォルダー [最初のコマンド] に移動します。これにより、アクセス許可も更新されます (以下を参照しない場合)。
  2. origin [2 番目のコマンド] をフェッチします。これは、brew のリモート ブランチのローカル バージョンを更新することを意味します。
  3. REMOTE マスター ブランチに基づいて [3 番目のコマンド] をハード リセットします (現在のアクセス許可も使用します)。

chown非 sudo または管理者プロファイルにいる場合は、最初のコマンドも実行できます

sudo chown -R `whoami` /usr/local/Homebrew
cd /usr/local/Homebrew
git reset --hard origin/master

git reset を理解するには、この記事をご覧ください。

于 2012-08-20T03:15:27.310 に答える
107

私は数週間前に古い自作インストールを更新しようとして同様の問題を抱えていました。これを行う:

git reset --hard origin/master

私のためにそれを/usr/local修正しました。

他の人もこの問題を抱えているようです。ここで提案されている回避策のいずれかを確認しましたか?

于 2012-05-26T01:28:26.397 に答える
12

2012 年に提案されたものよりも少し安全に思えるので、個人的な経験を追加します。

  1. 実行しますbrew doctor
  2. 次の警告が表示された場合:

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

    走る:

    sudo chown -R `whoami` /usr/local
    

    パーミッションの問題を修正します (Chris Frisina によっても提案されています)。最後にもう一度実行brew doctorして、警告が消えたことを確認してください。

  3. 今、あなたは持っているべきです

    Warning: You have uncommitted modifications to Homebrew
    

    それはによって解決されるかもしれません

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

    Dr.Brew自身が示唆したように。このコマンドは、コミットされていない変更を隠しておくため、必要に応じて戻って復元できます。私よりも安全に思えgit reset --hard origin/masterました。

  4. 必要に応じて、ここや他の SO ユーザーによって提案された手順で問題が解決しない場合は、公式のトラブルシューティング ガイドを確認してください。

于 2015-05-04T10:03:04.013 に答える
0

同様の回答ですが、追跡されなくなったファイルがある場合は、追加の手順が必要になるため、/usr/local実行から

git fetch origin
git clean -f
git reset --hard origin/master
于 2016-01-27T13:07:18.577 に答える
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: この 2 番目のコマンドは、正しいリモート URL を新しいエイリアスに追加します。このアプローチで目的が達成されず、以前のアドレスが再び必要になった場合に備えて、そうしました。新しいリモートが機能したので、オリジンによってエイリアス化された URL を変更するだけで、他の誰かにコメントしてもらいます。喜んで回答を更新し、あなたにとって何がうまくいったかを反映します。

注 3: この 4 番目のコマンドはまさに望ましい結果をもたらします。「==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew!」という特に優れたレポートを含む、多数の更新がレポートされます。(彼らのものを強調してください)。

于 2016-11-15T00:14:25.500 に答える