代码之家  ›  专栏  ›  技术社区  ›  Simon

Git Group Development Server安装程序

git
  •  1
  • Simon  · 技术社区  · 14 年前

    我想为我的组织部署Git。我希望用户不能访问服务器,只能提交到存储库。 不过,我希望存储库是一个真正的文件系统,可以与Apache虚拟主机一起使用。 我所做的如下:

    cd /home/vhosts
    git init --shared {projectname}
    git config receive.denyCurrentBranch ignore
    

    然后我想跑 git reset --hard 每次推回到主存储库之后。

    这是个好主意吗?我应该有第二个存储库 git pull 而不是 Git重置--硬 …哪个更重?我能把这个设成 hook ??

    谢谢。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Felix Andersen    14 年前

    我有你描述的设置,只是做了一些修改。JoeMaller有一篇优秀的文章,我把它作为配置的基础。 A web-focused Git workflow

        2
  •  1
  •   Greg Hewgill    14 年前

    通常,设置这个的方法是拥有一个“裸机”存储库,它是每个人推拉的顶级主存储库。运行Apache的Web服务器有自己独立的存储库(如果您缺少硬件,它们可以在同一台机器上)。您将在主存储库上安装一个提交后挂钩,该挂钩将在下一个apache的主存储库上触发“git pull”。 /home/vhosts . (这个钩子在一台机器上是最简单的,但是如果您这样设置的话,您可以跨机器进行操作。)

    要创建裸存储库,请执行以下操作:

    mkdir -p /home/git/{projectname}.git
    cd /home/git/{projectname}.git
    git init --shared --bare
    

    裸存储库根本没有工作副本,只有 .git 结构。

        3
  •  0
  •   mpe    14 年前

    我不知道阿帕奇和它有什么关系。

    只需设置一个回购,就像格雷格说的,一个空回购,并让它成为你的主要回购。然后人们从中拉出来,当他们准备好的时候,他们就推过去。您可能想拒绝主回购上的非快速转发合并,这样人们总是提取最新的代码,与之合并,然后进行推送。

    让人们访问repo的最佳方法是使用git守护进程和 git:// 协议。

    如果你想要一个Web界面,那么就使用GitWeb,但这只是一种便利。

    此外,在 section 5.1 of the Pro Git book 这可能有助于澄清什么是最适合您的工作流。