Ada*_*amT 2 upgrade git homebrew osx-lion
我用 Lion 重新格式化了我的机器,它有这个默认版本的 git:
$ git --version
git version 1.7.7.5 (Apple Git-26)
Run Code Online (Sandbox Code Playgroud)
我决定升级 git 所以我做了:
$ brew install git
==> Downloading http://git-core.googlecode.com/files/git-1.7.10.4.tar.gz
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/git/1.7.10.4 CC=/usr/bin/clang CFLAGS=-Os -w -pipe - march=native -Qunused-arguments LDFLAGS= install
==> make CC=/usr/bin/clang CFLAGS=-Os -w -pipe -march=native -Qunused-arguments LDFLAGS=
==> make clean
==> Downloading http://git-core.googlecode.com/files/git-manpages-1.7.10.4.tar.gz
######################################################################## 100.0%
==> Downloading http://git-core.googlecode.com/files/git-htmldocs-1.7.10.4.tar.gz
######################################################################## 100.0%
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
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
==> Summary
/usr/local/Cellar/git/1.7.10.4: 1173 files, 23M, built in 39 seconds
Run Code Online (Sandbox Code Playgroud)
不幸的是,git 没有升级:
$ git --version
git version 1.7.7.5 (Apple Git-26)
Run Code Online (Sandbox Code Playgroud)
我是终端/命令行和所有 Unix 的新手,所以我不确定我的下一步行动是什么。我猜“警告”告诉我我应该做点什么,因为这个升级的 git 不是默认的 git 所在。那么,我是否需要将这些路径添加到我的 PATH 中?如果是这样,我该怎么做?如果没有,我现在该怎么办?
谢谢
没错。/usr/local/bin或等价物需要添加到您的PATH,因为那是brew安装软件的地方。此外,它需要在默认 Git 所在的任何目录之前。(注意:我将慢慢地介绍这个,只是为了让你更轻松地进入 Unix 世界。)
在您着手修复 PATH 之前,请在终端中执行此操作:
which git
Run Code Online (Sandbox Code Playgroud)
并查看当前在哪个目录中找到 Git。那是您必须击败的目录。也输入这个:
echo $SHELL
Run Code Online (Sandbox Code Playgroud)
希望你看到'/bin/bash',因为我假设你正在使用它。如果没有,请告诉我们。
最简单的尝试就是简单地放在/usr/local/binPATH 的前面。这通常是在你的 shell 的一个配置文件中完成的,当你启动终端时,它会运行。对于 bash shell,它是~/.bash_profile(~您的主目录的昵称在哪里)。如果您还没有,请继续在那里创建一个文本文件,并添加以下行:
export PATH=/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
(注意:在这里使用适当的准系统文本编辑器,例如TextWrangler或Xcode或您最喜欢的程序员编辑器,而不是喜欢保存 RTF 文件的 TextEdit。)
':' 分隔 PATH 变量中的目录,并$PATH扩展到此环境变量的当前(预分配)定义。总而言之,此命令附加/usr/local/bin到您的 PATH,然后将更新的 PATH导出到您的环境,以便从 shell 运行的其他程序可以看到并使用更新的 PATH。(注意:如果/usr/local/bin后面出现在 PATH 中也没关系。如果您决定要保持/usr/local/bin在前面,您可以删除第二个副本,并将 PATH 设置为完全修改过的值。)
保存该文件,退出终端,然后重新启动它。创建一个新的终端窗口并输入:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
你现在应该看到/usr/local/bin前面了。运行git --version并确保您看到的是您期望的版本。
这样做之后,会出现什么问题?好吧,在某些情况下,您可能安装了一些/usr/local/bin不如标准系统应用程序稳定的东西,因此您可能不希望该目录中的所有内容都优先于标准 PATH。如果您遇到这种情况,一个常见的解决方案是创建一个新目录,该目录仅包含对您希望在搜索中的系统标准程序之前出现的特定程序的引用:
~/bin/usr/local/binln -s /usr/local/bin/git ~/bin/git以创建一个在新目录中调用的符号链接git,指向安装的git那个brew。(符号链接类似于 Windows 世界中的“快捷方式”,如果您熟悉的话。)git.我还应该注意到,有一种更高级的、特定于 Mac 的方法来设置 PATH。它涉及创建/更改您的environment.plist配置。为此,首先找出您需要的完整路径(即不涉及 的先前定义$PATH):
echo $PATH
Run Code Online (Sandbox Code Playgroud)
之后,运行这个:
defaults write ~/.MacOSX/environment PATH ...
Run Code Online (Sandbox Code Playgroud)
where...被替换为您希望成为系统范围默认值的任何路径。将您的目录放在前面(/usr/local/bin或其他任何位置),不要忘记 ':',并在末尾复制/粘贴 PATH 的 echo'd 值。然后,为了确保您的 Mac 配置和您的 shell 配置在同一页面上,请转到 ~/.bash_profile,并在您之前所在的位置export PATH执行以下操作:
export PATH=`defaults read ~/.MacOSX/environment.plist PATH`
Run Code Online (Sandbox Code Playgroud)
这就是我在 Mac 上设置 PATH 的方式。
为什么要经历这一切?因为,与 中定义的 PATH 不同~/.bash_profile,Finder 或 Spotlight 启动的 GUI 应用程序可以看到此默认值。但是,对于将从命令行运行的 Git 操作,您将不需要它。此外,/usr/local/bin/git如果需要运行 Git 程序,许多使用 Git 的 GUI 应用程序也可以被赋予绝对路径 ( )。因此,您可能无需跳过这些额外的几个箍就可以脱身。但是现在您知道了诀窍,以防万一以后确实有必要。
快乐的 Git 黑客!
| 归档时间: |
|
| 查看次数: |
1362 次 |
| 最近记录: |