【问题标题】:OS X: portable Git (aka install multiple Git versions)OS X:便携式 Git(又名安装多个 Git 版本)
【发布时间】:2013-03-25 02:54:31
【问题描述】:

我目前正尝试在 OS X 上安装多个 Git 版本以进行测试。从git-scm.com(安装到/usr/local/git)下载 OS X 安装程序包后,我将其移动到不同的位置,例如~/git-1.7.11.1~/git-1.8.1。不幸的是,Git 不喜欢这个动作:

$ ~/git-1.7.11.1/bin/git fetch
fatal: Unable to find remote helper for 'https'

甚至更糟:

$ ~/git-1.7.11.1/bin/git pull
git: 'pull' is not a git command. See 'git --help'.

Did you mean this?
        shell

当我设置路径时,它也不起作用:

$ export PATH=~/git-1.7.11.1/bin:$PATH
$ which git
/Users/xxx/git-1.7.11.1/bin/git
$ git pull
git: 'pull' is not a git command. See 'git --help'.

Did you mean this?
        shell

我还需要对 Git 包进行更改以使其可移植(也就是在每个位置运行)吗?

【问题讨论】:

  • 您可以从源代码安装多个git 版本,使用--prefix=/path/to/install/dir。见this question。如果您已经安装到/usr/bin/local,然后移动了安装的文件,您应该检查~/git-1.7.11.1/bin 是否在您的$PATH 中,以便git 可以找到各种git 二进制文件。
  • 我想创建 portable 未绑定到某个位置的 Git 安装。

标签: macos git osx-lion


【解决方案1】:

git-scm 安装程序似乎将所有内容安装在 /usr/local/git 中(通过查看 git-scm 下载中的 uninstall.sh 文件推断)。因此,重命名 git 目录应该没有问题。您需要做的就是像这样扩充您的路径:

PATH=$PATH:/usr/local/git-1.7.11.1/bin

以便可以找到git 及其所有帮助程序。

请注意,如果您尝试从同一个 shell 调用多个 git 版本,这种方法将不起作用;所有版本都将从 PATH 的第一个目录中获取其帮助程序。

[编辑] 您还需要设置环境变量 GIT_EXEC_PATH。使用

git --exec-path

了解它目前是什么,然后使用新的:

git --exec-path=<...git-1.7.11.1>

或通过定义 GIT_EXEC_PATH。

此外,构建路径似乎内置于 git 可执行文件中,这可能表明 git 期望其支持文件位于默认位置。

ebg@ebg(147)$ strings git | grep usr
/usr/local/git
/usr/local/bin:/usr/bin:/bin

ebg@ebg(148)$ strings /usr/bin/git | grep usr
/Applications/Xcode.app/Contents/Developer/usr
/usr/local/bin:/usr/bin:/bin

所以,使用 GIT_EXEC_PATH。请参阅GIT Man Page 了解更多信息。

【讨论】:

  • 如果你从源代码构建,你也可以在不安装或设置 GIT_EXEC_PATH 的情况下通过调用 bin-wrappers/git 来运行,如INSTALL 中所述。 – 格伦 K
【解决方案2】:

我需要设置GIT_EXEC_PATH:

$ ~/git-1.7.11.1/bin/git pull
git: 'pull' is not a git command. See 'git --help'.

Did you mean this?
        shell
$ export GIT_EXEC_PATH=~/git-1.7.11.1/libexec/git-core/
$ ~/git-1.7.11.1/bin/git pull
Password for 'https://xxx': 

【讨论】:

    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    相关资源
    最近更新 更多