【问题标题】:How can i make ZSH use the latest git version?如何让 ZSH 使用最新的 git 版本?
【发布时间】:2013-01-27 10:02:05
【问题描述】:

我在 OS X 上将 ZSH 与 oh-my-zsh 一起使用。

今天我用hombrew更新到最新版本的git(1.8.something)。

但是,如果我运行

➜  ~  git --version
git version 1.7.10.2 (Apple Git-33)

我看到仍在使用旧版本。在 bash 上一切正常,并且调用了最新版本的 git。

由于我是 ZSH 的新手,任何关于如何设置 ZSH 以使用“新”git 的建议都非常感谢!

最好的,

托比

【问题讨论】:

    标签: macos git path zsh


    【解决方案1】:

    如果 PATH 修改没有立即生效,您需要意识到使用 zsh 您需要键入“rehash”以便 zsh 识别路径中有新的可执行文件。或者只是注销并重新登录。

    【讨论】:

    • 感谢您的评论!我也试过你的方法,甚至重启了几次,但到目前为止我对 ~/.zshenv 的添加似乎被忽略了。
    • @tobias.henn echo $PATH 说什么?它是否完全排除了您放入 .zshenv 的所有内容?如果你手动设置,比如export PATH=/usr/local/whereyourgitis:$PATHrehash,把路径替换成你安装新版本git的路径,那么它会运行正确的版本吗?
    • FWIW: rehash 实际上并没有更改在您键入时调用的二进制文件,例如git,它只是改变了 zsh 知道的做自动完成之类的事情。
    • @Dougal 这不是真的。 Zsh 对可用的可执行文件进行哈希处理,这通过 rehash 命令再次完成,请参阅zsh.sourceforge.net/Guide/zshguide03.html
    • 嗯,很有趣。我想我认为它在没有哈希表的情况下运行的时间实际上根本不在字典中。
    【解决方案2】:

    这意味着您的 $PATH 变量未设置为包含正确的 git(以及所有其他自制软件安装)。

    尝试从 bash 和 zsh 执行 echo $PATH。您应该至少看到一个区别:安装自制软件的目录,可能是/usr/local/bin。 (它要么不在其中,要么在 Apple 提供的二进制文件所在的 /usr/bin 之后。)

    要修复它,请添加一行

    export PATH=/usr/local/bin:$PATH
    

    致您的~/.zshenv

    【讨论】:

    • 感谢您的回答!它还没有工作,但我现在知道我必须往哪个方向走!
    • 终于回到了这个问题。在我将您的上述行添加到我的 ~/.zshrc 文件后,它起作用了!
    【解决方案3】:

    比较bashzshwhich git 的输出(和echo "$PATH" 的输出)。

    包含最新git 的目录可能不存在于zsh$PATH 变量中,但它存在于bash 中。这可能是由于在您的~/.bashrc 和/或~/.bash_profile 文件中添加了$PATH 项目,zsh 在启动时不会提供这些项目。如果是这样,请将PATH 的相同分配添加到您的~/.zshrc

    【讨论】:

    • 好吧,我们同时给出了基本相同的答案 :)——除了 .zshenv.zshrc 更可取,因为后者只在交互式 shell 中运行。
    猜你喜欢
    • 2013-10-09
    • 2013-07-12
    • 2013-01-04
    • 2016-04-26
    • 2010-11-15
    • 1970-01-01
    • 2011-04-03
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多