Can't use homebrew installed git
I'm encountering a really weird issue when I try to use the latest version of git I just installed via homebrew. which git
is pointing me to the homebrew install, but calling git
returns the original version installed with OS X.
I checked first to see the original version I was on.
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Then I went to homebrew to install the latest version.
[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
Looks like it worked! Check that it's pointing to the correct git
[user@home ~]$ which git
/usr/local/bin/git
Should be good, right? Not so fast
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
That's weird. Am I really pointing to the right 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
Sure looks like it. Works when I call it manually
[user@home ~]$ /usr/local/Cellar/git/2.0.0/bin/git --version
git version 2.0.0
But not as git
[user@home ~]$ which git
/usr/local/bin/git
[user@home ~]$ git --version
git version 1.8.5.2 (Apple Git-48)
Any ideas as to what could be causing this?
EDIT: Solved it. source .bashrc
fixed it. Still curious as to why which
would return me the correct executable but it wouldn't be called though, if anyone can explain that.
Solution 1:
Shells maintain a cache of the paths where executables were found in the $PATH
variable. So it cached /usr/bin/git
rather than /usr/local/bin/git
, because the latter didn't exist when your shell started. Running hash -r
in Bash from your current terminal will clear this cache, then the first instance found in $PATH
should be the one that executes.
Solution 2:
I got the exact same problem. Here is my solution.
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
After that you are done, however you are not able to see any changes when you run git --version
. Just log out and log back in, run git --version
again.