私はそうとうボケているらしく、 自分で「scalaもcheckoutしたまんまだわー」と書いておきながら、そのままupdateかましました。
$ brew update error: Your local changes to the following files would be overwritten by merge: Library/Formula/scala.rb Please, commit your changes or stash them before you can merge. Aborting Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master
過去バージョンをインストールするためとかで手で git checkout xxx とかやったまま放置したらこれになるみたいです。
直さねばなるまい。
原因
前のエントリの通りで、特に悩む事でもないです。 /usr/local に移動して git status 叩いて、今回エラーになったファイルがこんな感じで出たら同じ事象。
$ cd /usr/local $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: Library/Formula/scala.rb # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Library/Formula/adamem.rb # Library/Formula/asterisk.rb (略)
うん、戻そう。
対処
「前と同じ」だけじゃ芸がないので、ちょっとgitの取っ掛かり的な何かを書いてみる。
gitはstatus叩いた時に出てくるコマンドを叩けばとりあえずなんとかなります。「英語こわい」とか思うかもしれませんが、このメッセージ信じてるだけで何とかなることも多いです。見るのなんて括弧の中の use ... だけでいいですしね。
ここでは「 (use "git reset HEAD
$ git reset HEAD Library/Formula/scala.rb Unstaged changes after reset: M Library/Formula/scala.rb
これで済んだ?いやいや。そう思うならもう一度 git status です。
$ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: Library/Formula/scala.rb # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Library/Formula/adamem.rb (略)
まだ残ってる。で、次は「(use "git checkout --
$ git checkout -- Library/Formula/scala.rb $ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Library/Formula/adamem.rb (略)
これでいける。
$ brew update Updated Homebrew from 5222ba75 to 7971d601. ==> New Formula alac freetype libpng pan root ==> Updated Formula ace cpanminus ffmpeg2theora hwloc pkg-config ack cppcheck findbugs ical-buddy play (略)
めでたしめでたし。
Gitに不慣れな人は、困ったらとりあえず git status してみたらいいと思います。