2012-05-08 56 views
0

我已经创建了两个存储库 - 本地(在我的机器上)和远程(从活动服务器)。远程的是一个裸仓库。这些文件都是HTML文件。Git:创建本地和远程存储库,如何使用我推送到远程存储库的文件?

现在我的问题是,我如何使用这些文件,我推送到远程的,使他们可以通过网络访问?我应该从实时服务器创建另一个存储库,并从裸存储库中提取该存储库?或者将符号链接工作呢?

+0

您需要使用[git daemon](http://schacon.github.com/git/git-daemon.html)通过http公开您的存储库。 – KurzedMetal

+0

@KurzedMetal - 我会试试。谢谢! – JoenasE

回答

0

我能通过克隆我的远程回购来解决我的问题。

例如

我的远程回购位于

/home/user/repo/mywebsite.git 

所以在我的

/var/www/mywebsite 

我做git clone /home/user/repo/mywebsite.git .

然后,如果我推到我的远程回购这是/home/user/repo/mywebsite.git, 我会只要git pull/var/www/mywebsite

我希望这会帮助那些和我一样的问题,因为git-daemon对我来说工作不好。

0

如果您在服务器上创建了裸存储库,那么它将不包含可见文件的工作树。这通常是您想要的远程商店。

但是,如果你想通过网络服务器来提供文件服务,你需要访问到工作树,你是对的 - 克隆裸露的回购协议所服务的web目录将让你(和网络服务器)来访问这些文件。

如果你想通过网页浏览git仓库本身(即查看日志等),那么你需要安装git-daemon并将它指向裸git仓库。

0

恕我直言,最好的解决方案是在服务器上配置git push hook脚本,它将克隆/更新裸回购(猜测,主分支)文件到您的WEB源文件夹。

+0

我已经尝试在hooks/post-receive#!/ bin/sh中配置这样的钩子GIT_WORK_TREE =/var/www/mywebsite git checkout -f。但每次我推,我得到一个“文本文件忙”的错误。你有什么想法是什么导致了这个错误? – JoenasE

+0

你的'/ var/www/mywebsite'是一个本地git仓库吗?你先做拉吗?您是否尝试以'git'(或'gitosis')用户身份登录并从/ var/www/mywebsite目录中创建'git checkout'? – radistao

+0

'/ var/www/mywebsite'位于活动服务器中。就在我的远程回购所在的同一台服务器上。 – JoenasE