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

谢谢。

+0

这个问题真的很糟糕,甚至没有人想批评它吗? – Simon 2010-10-14 16:43:58

+0

我不了解设置。为什么此服务器上的存储库“推回”到主存储库? – mckeed 2010-10-14 19:15:47

我已经通过一些修改描述了设置。乔马勒有一个很好的写作,我用作我的配置基地。 A web-focused Git workflow

通常设置它的办法是有一个“裸”储存库是*高手,大家都推和拉离。运行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不同的工作流程,这可能有助于澄清的最佳工作流程是什么,你的一些很好的讨论。