无法使用自制软件安装的git


16

当我尝试使用刚通过自制软件安装的最新版本的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会返回正确的可执行文件给我,但是如果有人能解释的话它不会被调用。


不确定到底是什么问题,但听起来您可能想看看的当前值$PATH
Zev Eisenberg 2014年

3
如果您想查看已安装的git的所有版本,请使用-> which -a git-(哪个git,仅将您在PATH变量中找到的第一个路径返回给您),以查看PATH中的路径-> echo $ PATH
konqui 2014年

Answers:


25

Shell维护在$PATH变量中找到可执行文件的路径的高速缓存。因此它缓存/usr/bin/git而不是缓存/usr/local/bin/git,因为在您的shell启动时后者不存在。hash -r从当前终端在Bash中运行将清除此缓存,然后在其中找到的第一个实例$PATH应为执行的实例。


hash -r为我工作
金属齿轮固体

5

我遇到了完全相同的问题。这是我的解决方案。

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再次运行即可。


7
打开一个新的终端窗口就足够了。或者,也可以致电source ~/.bash_profile
Daniel B

这些步骤正是我所需要的,它们帮助我使用最新版本的git设置系统。我还发现了我从git-scm.com下载的另一份git副本,因此我运行了uninstall.sh脚本将其删除。我现在一切都好,多亏了芳和詹斯!
Michael Sheaver

感谢您的步骤。对我来说,我可以自动使用git --version而无需运行最后一个echo命令。
Michael Fulton


-1

我的问题是我安装了Mac GitHub应用程序。/usr/local/bin/git指向的是该应用的git版本,而不是Homebrew版本。卸载GitHub应用为我解决了该问题。


-1

使用自制软件更新计算机上的git时,请执行以下步骤:

brew doctor

解决建议的问题

brew update 如果有较新版本的自制软件

brew install git 下载并安装git的最新版本

跑步brew doctor会让你知道

警告:酒窖中的小桶未连接

执行brew link git将导致错误

错误:无法符号链接bin / git

目标/ usr / local / bin / git已经存在。您可能要删除它:

rm'/ usr / local / bin / git'

brew link --overwrite git 覆盖符号链接并指向已安装的git brew。


-1

打开您的终端。输入此命令。

sudo nano /etc/paths

然后在文件顶部复制以下路径。

/usr/local/git/bin

按Ctrl + X并保存。

校验 git --version

为我工作。


没有这样的文件git/bin。你是说bin/git吗 此外,也无需将其添加到您的路径中- /usr/local/bin已经存在。
slhck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.