我正在开发一款网站,使用自己的笔记本电脑作为开发服务器,同时使用在线服务器作为生产服务器。我使用git来管理我的项目。
我以前使用过Heroku,并认为只需使用git push heroku master
即可发布我的网站,这真的很酷,所以我计划自己构建一个类似的平台。
因此,这就是我所做的,我在生产服务器上安装了git(使用gitosis来管理访问权限),并在我的git存储库中,我使用git remote add git@production:myrepo.git
添加了远程git存储库。
问题是如何获取生产服务器上的代码?生产服务器充当git服务器,因此我只能获取.git文件夹而不是实际的代码。我想到了一个技巧,即使用git clone --local myrepo.git myrepo
来克隆生产服务器上的数据,并在myrepo.git的hooks/文件夹中,编辑post-receive
文件如下:
#!/bin/sh
touch /tmp/do-we-got-here
cd /path/to/clone/myrepo
/usr/bin/git pull
我使用
git push production master
后,创建了do-we-got-here
文件,因此我可以确认post-receive hook正在工作,但是git pull
部分不起作用。当我到达myrepo文件夹并使用git pull
时,它仍在从myrepo.git中pull。因此,我想知道如何处理这种情况?我知道这是可能的,因为像Heroku这样的托管站点正在工作!但问题是如何处理?
git clone repo_url
,你将拥有所有东西,包括文件。 - iberbeu