web-dev-qa-db-ja.com

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

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

Originを取得することを忘れないでください!!!

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

説明、興味のある方へ:

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

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

Sudoまたはadmin以外のプロファイルにいる場合は、最初のコマンドをchownにすることもできます
$ Sudo chown -R `whoami` /usr/local
$ cd /usr/local
$ git reset --hard Origin/master

Gitのリセットを理解するには、 この記事 をご覧ください。

737
chris Frisina

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

git reset --hard Origin/master

/usr/localで修正されました。

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

107
Joe Holloway

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
    

    dr.Brew自身が示唆したとおり。このコマンドはコミットされていない変更を隠し、必要に応じて戻ってそれらを回復できるようにします。私にとっては、git reset --hard Origin/masterより安全だと思われました。

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

11
furins

同様の答えですが、追跡されなくなったファイルがある場合は、/usr/local runから追加のステップが必要です

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

この方法は、いくつかの方法よりも簡単な場合があります。以下が含まれます。

  • 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を新しいエイリアスに追加します。このアプローチが私が望んでいたことを達成できなかった場合に備えて、私はそうしました、そして、私は前のアドレスを再び必要としました。新しいリモートが機能したので、OriginによってエイリアスされたURLの変更についてコメントするように他の人を招待します。私はあなたのために働いたものを反映するために答えを喜んで更新します。

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

0
Kay V