web-dev-qa-db-ja.com

Homebrewがインストールされたgitを使用できません

自作でインストールしたばかりの最新バージョンのgitを使用しようとすると、非常に奇妙な問題が発生します。 which gitは、自作のインストールを示していますが、gitを呼び出すと、OS Xでインストールされた元のバージョンが返されます。

最初に、自分が使用していた元のバージョンを確認しました。

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

その後、自作で最新バージョンをインストールしました。

[user@home ~]$ brew install git
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/git-2.0.0.mavericks.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring git-2.0.0.mavericks.bottle.2.tar.gz
==> Caveats
The OS X keychain credential helper has been installed to:
  /usr/local/bin/git-credential-osxkeychain

The 'contrib' directory has been installed to:
  /usr/local/share/git-core/contrib

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
????  /usr/local/Cellar/git/2.0.0: 1324 files, 31M

うまくいったようです!それが正しいgitを指していることを確認してください

[user@home ~]$ which git
/usr/local/bin/git

いいはずだよね?そんなに早くない

[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

それは変だ。私は本当に正しいgitを指していますか?

[user@home ~]$ ls -l /usr/local/bin/git
lrwxr-xr-x  1 user  group  27 Jul  3 15:54 /usr/local/bin/git -> ../Cellar/git/2.0.0/bin/git

確かにそのように見えます。手動で呼び出すと機能します

[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0

しかしgitではありません

[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)

これを引き起こしている可能性があるものについてのアイデアはありますか?

編集:解決しました。 source .bashrc修正しました。 whichが正しい実行可能ファイルを返す理由についてはまだ興味がありますが、誰かがそれを説明できる場合は、呼び出されません。

16
Matt Stone

シェルは、$PATH変数で実行可能ファイルが見つかったパスのキャッシュを維持します。したがって、シェルの起動時に後者は存在しなかったため、/usr/bin/gitではなく/usr/local/bin/gitをキャッシュしました。現在のターミナルからBashでhash -rを実行すると、このキャッシュがクリアされ、$PATHで最初に見つかったインスタンスが実行されるインスタンスになります。

25
realgeek

まったく同じ問題が発生しました。これが私の解決策です。

brew uninstall git
# make sure everything is alright, maybe brew will give you some hint
brew doctor
brew update  
brew install git
# magic happen, brew will give you hint /usr/bin occurs before /usr/local/bin
# and recommend you run following command
brew doctor
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

その後は終了しますが、git --versionを実行しても変更を確認することはできません。ログアウトして再度ログインするだけで、もう一度git --versionを実行できます。

5
Fang

私は同じ問題を抱えています。ターミナルを再起動しただけです。

0
serial engine