2011-08-03 27 views
47

更新しようとしているとき:エラー私は醸造更新しようとした醸造パッケージマネージャ

sudo brew update 

をしかし、私はこのエラーを得た:

error: Your local changes to the following files would be overwritten by merge:

Listing a lot of files

Error: Failed while executing git pull http://github.com/mxcl/homebrew.git master

任意のアイデア間違っているものを?

+2

Homebrewは 'sudo'を使わないことをお勧めしますので、' brew update'を実行することができます。 – Clay

+0

いくつかのOS X El Capitanユーザは、別の理由でこの問題を経験します。 [私の答えは以下](http://stackoverflow.com/a/33640543/756329)を参照してください。 –

+0

Homebrewに 'sudo'を使用しないでください –

答えて

78

ちょうど数日前に修正されたbug in Homebrewがありました。このバグを修正するには、あなたの自宅のインストールの中にgit reset --hard FETCH_HEADを実行することができます。既に修正されていると見なされるファイルは修正されないため、git checkout Libraryを実行して、チェックアウトを最新のファイルに置き換えることもできます。

+3

私はgit resetを実行します -/usr/localにFETCH_HEADがありますが、致命的です:あいまいな引数 'FETCH_HEAD':リビジョンとファイル名の両方 – Chiron

+0

gitを更新する必要があります。 – Turadg

+2

これは私がかつてsudoで醸造したことです。それは、間違った権限(rootが所有する)でいくつかのファイルを作成しました。私はファイルをchown'ed、その後、そのgitリセットを実行し、物事は元気だった。ありがとう! –

5

/usr/localのリポジトリ(これはBREWインストールです)のリポジトリはリモートリポジトリを失っています(または少なくとも理解していない人はいません) 。したがって、git resetでもgit pullでもなく、確かにbrew updateは機能しません。

どうしたのですか?次のようないくつかの行があるかどうか/usr/local/.git/configを確認してください:

[remote "origin"] 
url = http://github.com/mxcl/homebrew.git 
fetch = +refs/heads/*:refs/remotes/origin/* 

次のようにしない場合は、次の

cd /usr/local 
git remote add origin http://github.com/mxcl/homebrew.git 
git pull origin master 
+0

これは私にも起こった!ありがとう@Achim – stringy05

15

は私が追加してみましょう:その後、cd /usr/local/gitgit reset --hard FETCH_HEAD

+0

恐ろしい!これは私のために働いた! :) – uday

34

受け入れ答えが正しいことを実行します不完全です。以下の人跡未踏作業ツリーのファイルはマージによって上書きされます:あなたは

エラーのエラーになっている場合は

を次に、あなたの端末に移動し、その後、これらのコマンド

cd /usr/local 

を実行

git reset --hard FETCH_HEAD 

次に

git checkout Library 

すべてが順番に取得されるはずです。次に、あなたの端末に移動し、これらのコマンドにOS Xエルキャピタンを使用してあなたのそれらのために

cd /usr/local 

sudo git reset --hard FETCH_HEAD 

sudo git checkout Library 
11

を実行して、あなたの問題は、システムの整合性の保護かもしれません。修正内容はhereと記載されています。/usr/localがすでに存在する場合

は、ターミナルで次のコマンドを実行します。

sudo chown -R $(whoami):admin /usr/local 

/usr/localが存在しない場合:

sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown -R $(whoami):admin /usr/local 

の場合:

まず、/usr/local通常の方法を作成しよう代わりに権限の問題が表示されます。

  1. 回復モード(ブート時にCmd + Rを保持)に再起動&端末にアクセスします。その端末目で
  2. csrutil disable
  3. を再起動し、バックOS Xへ
  4. はあなたのターミナルアプリケーションを開いて、再度リカバリモード&アクセスターミナルへすぐ上
  5. のリブートからのラインを実行します。
  6. 実行し、その端末で:あなたは&が自作をインストールは/ usr/localに書き込むことができるようになりますバックOS X &にcsrutil enable
  7. を再起動します。
10

を実行

brew update 
関連する問題