我有一个使用git进行版本控制的项目.
我想要做的是在我的(支持ssh的)GoDaddy共享主机软件包上设置一个repo,这样我就可以通过推送进行部署,而不是在FTP中进行拖放.
任何提示将不胜感激.最好是来自已经完成它的人的帐户,但我个人无法在网上找到任何帐户.
通过一点点工作,我能够在GoDaddy帐户上运行Git.在我的博客上有一篇较长的帖子详细说明了这个过程,但简短的回答是:
在你的帐户中安装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帐户上.最近通过SSH进行shell访问时,我认为安装本地git存储库会很有趣.这不是微不足道的,但我终于让它发挥作用了.我是这样做的:
您想创建一个公钥,以便您可以轻松地通过SSH连接到GoDaddy帐户.如果您还没有密钥对,请创建密钥对,然后将其添加到密钥对~/.ssh/authorized_keys
.我将假设一个~/.ssh/config
类似这样的条目:
Host mysite HostName mygodaddysite.com User mylogin
在我的GoDaddy主机上闲逛之后,我发现它运行的是CentOS 5.2.在我的笔记本电脑上运行的二进制文件不兼容,所以我使用VirtualBox设置本地Centos 5.2安装并构建Git.我正在共享一个包含预构建的CentOS 5.2 Git二进制文件的tarball .您应该能够使用以下命令下载和安装:
wget http://johntrammell.com/centos5.2-git.tar.gz
tar xzf centos5.2-git.tar.gz
享受这一部分 - 我在这里为您节省了几个小时的工作.
将以下内容添加到.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
我看到默认的PATH.当我在.bashrc中设置路径时也是这种情况.我没有确切地追踪SSH在非交互式访问上的作用,但这可能与sshd中的PermitUserEnvironment设置有关.幸运的是我们可以解决这个问题.
登录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帐户的根目录中有一个裸存储库.
唯一棘手的部分是你必须告诉git在哪里可以找到git-upload-pack.这解决了上面提到的PATH问题.在本地计算机上,执行以下操作:
git clone -u libexec/git-core/git-upload-pack mysite:myrepo.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
https://serverfault.com/questions/26836/setting-up-a-git-repo-on-my-godaddy-hosting-plan
在我的GoDaddy托管计划上设置git仓库
找不到git-upload-pack:命令,如何正确解决这个问题
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.kernel.org/pub/software/scm/git/docs/git-upload-pack.html
http://www.kernel.org/pub/software/scm/git/docs/git-receive-pack.html