我有一个使用git进行版本控制的项目。
我希望能够做的是在我的(支持ssh的)GoDaddy共享主机软件包上设置一个repo,这样我就可以通过推送进行部署,而不是在FTP中进行拖放。
任何提示将不胜感激。最好的是来自已经完成它的人的帐户,但我个人无法在网上找到任何帐户。
答案 0 :(得分:10)
通过一些工作,我能够在GoDaddy帐户上运行Git。有一篇较长的帖子详细介绍了my blog上的流程,但简短的回答是:
检查您的存储库,使用-u指示git-upload-pack
%git clone -u libexec / git-core / git-upload-pack mysite:myrepo.git
调整本地存储库配置以指向git-upload-pack
和git-receive-pack
的正确路径
~/.ssh/authorized_keys
:
%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/config
。我假设Host mysite
HostName mygodaddysite.com
User mylogin
中的条目是这样的:
wget http://johntrammell.com/centos5.2-git.tar.gz
tar xzf centos5.2-git.tar.gz
在我的GoDaddy主机上闲逛之后,我发现它运行的是CentOS 5.2。在我的笔记本电脑上运行的二进制文件不兼容,所以我使用VirtualBox设置本地Centos 5.2安装并构建Git。我正在共享一个包含pre-built CentOS 5.2 Git binaries的tarball。您应该能够使用以下命令下载和安装:
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
享受这一部分 - 我在这里为你节省了几个小时。
将以下内容添加到.bash_profile:
ssh mysite env
这将在交互式shell上正确设置您的环境。不幸的是,我似乎无法为非交互式SSH命令正确设置PATH。例如,当我从笔记本电脑运行此命令时:
% mkdir myrepo
% cd myrepo
% touch README
% git init
% git add README
% git commit -m 'empty git repository'
% cd ..
% git clone --bare myrepo myrepo.git
我看到了默认的PATH。当我在.bashrc中设置路径时也是这种情况。我没有确切地追踪SSH在非交互式访问上的作用,但这可能与sshd中的PermitUserEnvironment设置有关。幸运的是,我们可以解决这个问题。
登录GoDaddy帐户,创建一个简单的“裸”Git存储库:
~/myrepo.git/
您现在在GoDaddy帐户的根目录中的git clone -u libexec/git-core/git-upload-pack mysite:myrepo.git
中有一个裸存储库。
唯一棘手的部分是你必须告诉git在哪里可以找到git-upload-pack。这解决了上面提到的PATH问题。在本地计算机上,执行以下操作:
% 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
您现在应该已经签出了原始最小存储库的副本。
可悲的是,我们没有完成:
% git config remote.origin.receivepack libexec/git-core/git-receive-pack
% git config remote.origin.uploadpack libexec/git-core/git-upload-pack
我们的PATH问题现在正在干扰推送操作。作为一种解决方法,我们可以在命令行上指定-receive-pack,也可以在本地配置中设置它(同样适用于获取操作和-upload-pack):
{{1}}
恭喜你,你现在应该开始运作了!
答案 1 :(得分:3)
首先,您需要在GoDaddy上安装git。我不确定这是否可行。 Git支持本地用户安装,但您需要使用某些开发工具来完成它。下载git,看看你是否可以./configure && make && make install
- 如果是的话,它会将它放在你的~/bin
目录中。
我们广泛使用git来控制生产。但是,我可以建议您使用git pull
进行推送,而不是在推送时部署吗?
更具体地说,创建一个“Release”分支,然后当你准备好部署时,只需将你的更改合并到Release分支,ssh到服务器,然后git pull。
例如
ssh user@godaddyhost.com
cd /path/to/project
#ok, assuming you are on the Release branch
git fetch
git merge branch-with-new-changes-on-it
# update the remote Release branch with the merge
git push origin HEAD
这个简单的工作流程允许开发人员始终在生产服务器上看到完全什么,并在请求部署之前将其他更改与他们合并。实际上,我们要求在请求部署分支之前完全合并所有生产更改。
-
如果您确实设法在GoDaddy上安装了git,并且您真的想在推送时自动部署,那么请查看post-update
挂钩。
http://git-scm.com/docs/githooks
-
如果你无法在GoDaddy上安装git,那么看看它们是否支持rsync。然后你可以在某个地方有一个简单的bash脚本
-
有很多方法可以做到这一点。也许这会对方向有所帮助......
答案 2 :(得分:3)
我按照这里的指示成功了:
http://www.krizka.net/2010/12/30/setting-up-a-public-git-repository-with-godaddy-shared-hosting/
钥匙(对我来说)是
答案 3 :(得分:2)
我在本地maitain git并使用scp来推送...它不优雅,但godaddy已经scp安装了我的默认值。
“scp -r fooDirectory user@host.com:/ path / to / document / root /”
将远程主机上的本地目录“fooDirectory”移动到“/ path / to / document / root / fooDirectory”。
当你登录时,去爸爸使用“pwd
答案 4 :(得分:2)
通过ssh连接。
将git安装到〜/ git。
之后创建/更新这些文件:
的〜/ .ssh / authorized_keys的
command="~/connect.sh" ssh-rsa AAAAB3NzaC...
〜/ connect.sh
#!/bin/bash
if [ -f "${HOME}/.env_profile" ]; then
source ~/.env_profile
fi;
if [ "x${SSH_ORIGINAL_COMMAND}x" == "xx" ]; then
$SHELL --login
else
eval "${SSH_ORIGINAL_COMMAND}"
fi;
〜/ .env_profile
export ENV_VARIABLE=value
通过git:
export PATH=$PATH:$HOME/bin:$HOME/git/libexec/git-core
export LD_LIBRARY_PATH=$HOME/git/lib
export GIT_EXEC_PATH=~/git/libexec/git-core
export GIT_TEMPLATE_DIR=~/git/share/git-core/templates
我花了大约一个星期去研究这个,但它现在像魅力一样工作......我不认为godaddy帐户有其他解决方案,可能性太受限制了......
答案 5 :(得分:1)
我找到了另一个有用的指南,可以在http://www.612softwarefoundry.com/getting-git-on-godaddy/
在GoDaddy上安装git答案 6 :(得分:0)
有一个YouTube教程,解释如何在Godaddy共享主机帐户上设置Git。链接在这里: http://youtu.be/z60GLfsGGsY
还有一个网页,其中包含您需要在视频上执行的命令。这是页面地址: http://www.drupalfever.com/linux-how-to/git/set-up-git-in-a-godaddy-shared-hosting-account
如果您有任何疑问,请留言或建议。
答案 7 :(得分:0)
此博客文章中的说明对我有用,除了我必须访问EPEL并找到最新版本的git RPM:http://hire.chrisjlee.net/node/139
cd ~
mkdir git
cd git
# Download the rpm from EPEL ( http://fedoraproject.org/wiki/EPEL )
# Find the latest version by checking http://dl.fedoraproject.org/pub/epel/5/i386/
wget http://dl.fedoraproject.org/pub/epel/5/i386/git-1.8.2.1-1.el5.i386.rpm
# Extract binaries from the rpm
rpm2cpio git-1.7.4.1-1.el5.i386.rpm | cpio -imdv
rm git-1.7.4.1-1.el5.i386.rpm
echo "
export GIT_BIN=${HOME}/git
export PATH=${GIT_BIN}/usr/bin:${PATH}
export GIT_EXEC_PATH=${GIT_BIN}/usr/bin
export GIT_TEMPLATE_DIR=${GIT_BIN}/usr/share/git-core/templates
export GIT_SSL_NO_VERIFY=true" >> ~/.bashrc
mkdir ~/.git
git config --local --add remote.origin.uploadpack ~/git/usr/bin/git-upload-pack
git config --local --add remote.origin.receivepack ~/git/usr/bin/git-receive-pack
答案 8 :(得分:0)
我必须在http://netgonian.com(GoDaddy经销商)托管的VPS上设置git。花了3个小时就可以在大约15分钟内完成,非常容易。
安装git应该像运行yum install git
一样简单,但遗憾的是尝试这种方式让我发现各种文件错误。以下是最终解决方案。
以下是步骤:
su -
yum install git
并且它可以正常运行。基本问题是yum的所有基本URL都指向secureserver.net上缺少所有所需文件的某个服务器。我们上面所做的是将基本URL指向具有所需文件的服务器。