2013-04-03 45 views
1

我目前正在尝试在OS X上安装多个Git版本用于测试目的。从git-scm.com(安装到/usr/local/git)下载OS X安装程序包后,我将其移动到其他位置,例如, ~/git-1.7.11.1~/git-1.8.1。不幸的是,Git不会喜欢这样的举动:OS X:便携式Git(又名安装多个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捆绑包中进行更改,以使它们可移植(又称为在每个位置运行)?

+1

你也许可以从源代码安装多个'git'版本,用'--prefix = /路径/到/安装/ dir'。看到[这个问题](http://stackoverflow.com/questions/5892695/can-i-use-git-without-installing)。如果你已经安装到'/ usr/bin/local',然后移动已安装的文件,你应该检查'〜/ git-1.7.11.1/bin'是否在'$ PATH'中,以便'git'能找到各种'git'二进制文件。 – simont

+0

我想创建*便携* Git安装,不绑定到某个位置。 – Mot

回答

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中的第一个目录获得帮助程序。

您还需要设置环境变量GIT_EXEC_PATH。使用

git --exec-path 

学习什么它目前,然后用新的包含:

的git --exec-PATH = < ...混帐1.7.11.1/...>

或通过定义GIT_EXEC_PATH。

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

[email protected](147)$ strings git | grep usr 
/usr/local/git 
/usr/local/bin:/usr/bin:/bin 

[email protected](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

+0

查看修改;使用GIT_EXEC_PATH。 – GoZoner

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':