brewの更新:次の追跡されていない作業ツリーファイルは、マージによって上書きされます。


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

説明、興味がある人のために:

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

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

chown非sudoまたは管理者プロファイルにいる場合は、最初のコマンドも使用できます
$ sudo chown -R `whoami` /usr/local
$ cd /usr/local
$git reset --hard origin/master

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


3
git fetch originリセットが機能する前に私はしなければなりませんでした。ありがとう。この回答が過去の日にどのように追加されたかおかしい、幸運なことに!
ghoppe 2012

2
/usr/local git fetch origin fatal: 'origin' does not appear to be a git repository fatal: The remote end hung up unexpectedly
リッチブラッドショー

2
このgithub.com/mxcl/homebrew/wiki/Common-Issuesをご覧ください。エラーの説明と修正方法も記載されています。
Stephane Paquet 2013年

11
それはうまくいきましたが、私は最後のステップを次のように行わなければなりませんsudo
でした

3
これは今でも定期的に起こりますが、過去数か月間にこれらの手順を3回繰り返す必要がありました。かなり面倒ですが、SOにお気に入りの機能があることは便利です(エラーを
ググリングすると

107

数週間前に、古い自作のインストールを更新しようとすると、同様の問題が発生しました。これを行う:

git reset --hard origin/master

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

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


チャンピオンのように働いた。リンクもありがとう!
Tyler DeWitt、2012年

他の人へのメモ:他の回答で提案されているように 'git fetch origin'を実行してみてください-これを正しく実行するだけでこの問題が解決しました( 'git fetch origin'がなければ、brewが更新を表示しない以外に明らかな問題はありませんでした;) )。
ギリアド2012

今朝、この抽出エラーに遭遇しました。少しグーグルで私をここに導きます。この答えは私の問題を完全に解決しました。ありがとう!
2013年

2
最初に、あなたはまた、stackoverflow.comcd usr/localgit remote add origin https://github.com/mxcl/homebrew.git
questions / 6024671 /…

11

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ユーザーが提案した手順で問題が解決しない場合は、公式のトラブルシューティングガイドを確認しください。


cd / usr / local / Library && git stash && git clean -d -fそしてbrew updateで修正されました
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:この2番目のコマンドは、正しいリモートURLを新しいエイリアスに追加します。このアプローチで希望どおりの結果が得られず、以前のアドレスが再び必要になった場合に備えて、そうしました。新しいリモートが機能したので、オリジンによってエイリアスされたURLを単に変更することについてコメントするために他の誰かを招待します。私はあなたのために何がうまくいったかを反映するために喜んで答えを更新します。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.