我目前正在尝试在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包中进行更改以使其可移植(也就是在每个位置运行)?
答案 0 :(得分:3)
git-scm安装程序似乎确实在/ usr / local / git中安装了所有内容(通过查看git-scm下载中的uninstall.sh文件来推断)。因此,重命名git目录应该不是问题。你需要做的是增加你的道路:
PATH=$PATH:/usr/local/git-1.7.11.1/bin
这样就可以找到git
及其所有帮助程序。
请注意,如果您尝试从同一个shell调用多个git版本,这种方法将无法工作;所有版本都将从PATH的第一个目录中获取他们的帮助程序。
[edit]您还需要设置环境变量GIT_EXEC_PATH。使用
git --exec-path
了解目前的情况,然后使用新的:
git --exec-path =< ... git-1.7.11.1 /...& gt;
或通过定义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。
答案 1 :(得分: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':