通过一些工作,我能够在我的 GoDaddy 帐户上运行 Git。在my blog 上有更长的帖子详细说明了该过程,但简短的回答是:
- 在您的帐户中安装 git(可能使用我的博文中引用的 tarball)
- 在您的帐户中创建一个 git 存储库(裸机或非裸机)
-
检查您的存储库,使用 -u 指示 git-upload-pack 的路径
% git clone -u libexec/git-core/git-upload-pack mysite:myrepo.git
-
调整您的本地存储库配置以指向 git-upload-pack 的正确路径和
git-receive-pack:
% git config remote.origin.receivepack libexec/git-core/git-receive-pack
% git config remote.origin.uploadpack libexec/git-core/git-upload-pack
由于无法再访问该博客,以下是从archive.org 提取的完整帖子:
在 GoDaddy 上使用 Git
此博客托管在廉价的 GoDaddy 帐户上。当最近可以通过 SSH 访问 shell 时,我认为安装本地 git 存储库会很有趣。这不是微不足道的,但我终于让它工作了。我是这样做的:
步骤 0. 配置 SSH
您想创建一个公钥,以便您可以轻松地通过 SSH 访问您的 GoDaddy 帐户。如果您还没有密钥对,请创建一个密钥对,并将其添加到 ~/.ssh/authorized_keys。我假设~/.ssh/config 中的条目是这样的:
Host mysite
HostName mygodaddysite.com
User mylogin
步骤 1. 安装 Git
在我的 GoDaddy 主机上闲逛之后,我发现它运行的是 CentOS 5.2。在我的笔记本电脑上运行的二进制文件不兼容,所以我使用 VirtualBox 设置本地 Centos 5.2 安装并构建 Git。我正在共享一个包含pre-built CentOS 5.2 Git binaries 的压缩包。您应该可以使用以下命令下载和安装:
wget http://johntrammell.com/centos5.2-git.tar.gz
tar xzf centos5.2-git.tar.gz
享受这部分 - 我在这里为您节省了几个小时的工作。
第 2 步。设置您的环境。
将以下内容添加到您的 .bash_profile:
export EDITOR=vim
export PATH=$PATH:$HOME/bin:$HOME/libexec/git-core
export LD_LIBRARY_PATH=$HOME/lib
export GIT_EXEC_PATH=~/libexec/git-core
export GIT_TEMPLATE_DIR=~/share/git-core/templates
这将在交互式 shell 上正确设置您的环境。不幸的是,我似乎无法为非交互式 SSH 命令正确设置 PATH。例如,当我从笔记本电脑运行此命令时:
ssh mysite env
我看到了默认路径。当我在.bashrc 中设置路径时也是这种情况。我还没有确切地找到 SSH 在非交互式访问中的作用,但这可能与 sshd 中的 PermitUserEnvironment 设置有关。幸运的是,我们可以解决这个问题。
步骤 3. 创建存储库
登录您的 GoDaddy 帐户,并创建一个简单的“裸”Git 存储库:
% mkdir myrepo
% cd myrepo
% touch README
% git init
% git add README
% git commit -m 'empty git repository'
% cd ..
% git clone --bare myrepo myrepo.git
您现在在您的 GoDaddy 帐户根目录中的 ~/myrepo.git/ 中拥有一个裸存储库。
第 4 步。检查您的存储库
唯一棘手的部分是你必须告诉 git 在哪里可以找到 git-upload-pack。这可以解决上面提到的 PATH 问题。在您的本地计算机上,执行以下操作:
git clone -u libexec/git-core/git-upload-pack mysite:myrepo.git
您现在应该已检出原始最小存储库的副本。
第 5 步。更多 git 配置调整
遗憾的是,我们还没有完成:
% cd myrepo
% echo "foo" > README
% git commit -am 'updated'
[master 044c086] updated
1 files changed, 1 insertions(+), 0 deletions(-)
% git push
bash: git-receive-pack: command not found
fatal: The remote end hung up unexpectedly
我们的 PATH 问题现在正在干扰推送操作。作为一种变通方法,我们可以在命令行中指定--receive-pack,或者在本地配置中设置(同样适用于获取操作和--upload-pack):
% git config remote.origin.receivepack libexec/git-core/git-receive-pack
% git config remote.origin.uploadpack libexec/git-core/git-upload-pack
恭喜,您现在应该可以运行了!
资源