git组开发服务器设置
问题描述:
我想为我的组织部署git。我希望用户无法访问服务器并仅对存储库进行提交。 但是我希望存储库是一个真正的文件系统,我可以使用apache虚拟主机。 我所做的是以下几点:git组开发服务器设置
cd /home/vhosts
git init --shared {projectname}
git config receive.denyCurrentBranch ignore
我当时想运行git reset --hard
后,每推后到主存储库。
这是个好主意吗?我是否应该有第二个存储库,它的作用是git pull
,而不是git reset --hard
......这是更重的吗?我可以将其设置为hook
?
谢谢。
答
通常设置它的办法是有一个“裸”储存库是*高手,大家都推和拉离。运行Apache的Web服务器有自己的独立存储库(如果硬件不足,它们可能在同一台计算机上)。您可以在主存储库上安装一个post-commit挂钩,它会在/home/vhosts
下为Apache启动一个“git pull”。 (此挂钩是最简单的一台机器上,但你可以做到跨机器,如果你设置了这种方式。)
要创建一个纯仓库:
mkdir -p /home/git/{projectname}.git
cd /home/git/{projectname}.git
git init --shared --bare
纯仓库没有工作副本全部,只是.git
结构的内容。
答
我不确定Apache与它有什么关系。
只要设置一个回购仓库,就像Greg说的那样,这个回购仓库就是您的主要回购仓库。然后人们从中拉出来,当他们准备好时,他们会推动它。您可能想要拒绝主回购库上的非快速合并,以便人们总是获取最新的代码,并与之合并,然后再推送。
给人们进入回购的最好方法是使用Git进程和git://
协议。
如果你想要一个web界面,然后使用gitweb,但这只是一个方便。
也有是在section 5.1 of the Pro Git book不同的工作流程,这可能有助于澄清的最佳工作流程是什么,你的一些很好的讨论。
这个问题真的很糟糕,甚至没有人想批评它吗? – Simon 2010-10-14 16:43:58
我不了解设置。为什么此服务器上的存储库“推回”到主存储库? – mckeed 2010-10-14 19:15:47