经过一些工作,我能够在我的 GoDaddy 帐户上运行 Git。有一篇更长的帖子详细介绍了该过程my blog http://johntrammell.com/wp/2011/01/05/using-git-on-godaddy/,但简短的答案是:
- 在您的帐户中安装 git(也许使用我的博客文章中引用的 tarball)
- 在您的帐户中创建一个 git 存储库(无论是否裸露)
-
检查您的存储库,使用 -u 指示路径git-upload-pack
% git clone -u libexec/git-core/git-upload-pack mysite:myrepo.git
-
调整本地存储库配置以指向正确的路径git-upload-pack
and
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 http://web.archive.org/web/20110830112931/http://johntrammell.com/wp/2011/01/05/using-git-on-godaddy/:
在 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。我正在分享一个包含以下内容的 tarball预构建的 CentOS 5.2 Git 二进制文件 http://johntrammell.com/centos5.2-git.tar.gz。您应该能够使用以下命令下载并安装:
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
您现在有一个裸存储库~/myrepo.git/
在您的 GoDaddy 帐户的根目录中。
步骤 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
恭喜,您现在应该可以启动并运行了!
资源
- http://johntrammell.com/centos5.2-git.tar.gz http://johntrammell.com/centos5.2-git.tar.gz
- https://serverfault.com/questions/26836/setting-up-a-git-repo-on-my-godaddy-hosting-plan https://serverfault.com/questions/26836/setting-up-a-git-repo-on-my-godaddy-hosting-plan
- 在我的 GoDaddy 托管计划上设置 git 存储库 https://stackoverflow.com/questions/1003885/setting-up-a-git-repo-on-my-godaddy-hosting-plan
- git-upload-pack:找不到命令,如何正确修复此问题 https://stackoverflow.com/questions/225291/git-upload-pack-command-not-found-how-to-fix-this-correctly
- http://www.bluehostforum.com/showthread.php?20304-Bluehost-Solution-to-the-Git-PATH-issue-when-using-a-non-interactive-shell http://www.bluehostforum.com/showthread.php?20304-Bluehost-Solution-to-the-Git-PATH-issue-when-using-a-non-interactive-shell
- http://www.google.com/search?q=ssh+setup http://www.google.com/search?q=ssh+setup
- http://www.kernel.org/pub/software/scm/git/docs/git-upload-pack.html http://www.kernel.org/pub/software/scm/git/docs/git-upload-pack.html
- http://www.kernel.org/pub/software/scm/git/docs/git-receive-pack.html http://www.kernel.org/pub/software/scm/git/docs/git-receive-pack.html