我正在尝试在我的办公室实施 Git。由于不可能在每台开发人员机器上运行 apache 服务器,因此他们无法在他们的机器上使用克隆。我们有一个 NFS 共享的开发服务器。我计划在这个 NFS 共享上创建 git 存储库和工作树。Git 由单个用户管理,因此不会有任何同时推送。
我的问题是
- 这是一个好习惯吗?
- 如何管理用户访问?
在这里重申以确保我理解:一个共享的开发“工作区”,每个人都安装在 NFS 上并使用指向远程 apache 实例的浏览器进行开发,他们处理相同的文件集并针对相同的文件执行 git 命令git 工作副本。如果到目前为止我的理解是正确的,那听起来不是一个好主意。
我建议您在 apache 服务器上为每个开发人员提供自己的工作区域,以及他们自己的 VirtualHost,以便他们可以看到自己的独立文件。现在他们能够独立于其他开发人员工作。每组文件都将是同一存储库的 git 克隆(可能是某个地方的裸存储库)。这为每个开发人员提供了一个更加健全的开发工作流程,并且没有开发人员相互践踏和提交其他代码等的风险。
用户访问,您可以通过允许谁挂载 NFS 共享来控制它。
git 在 NFS 上工作,是的,但与本地磁盘相比它非常慢。
让几个开发人员在同一个签出的 repo 上工作是一个麻烦的秘诀。
我会在开发人员推送和拉取的服务器上设置一个“上游”主存储库,然后每个开发人员在他/她自己的工作站上本地克隆主存储库并与之对抗。
您正在违背 git 的目的,即分布式开发。我建议您在拥有“官方”存储库的中央服务器上设置类似Gitolite的东西。开发人员可以从这个存储库中克隆出来并在他们的本地区域工作。然后,他们可以将(经过良好测试的)更改推送到官方存储库。使用 gitolite,您可以拥有细粒度的访问控制和其他几个管理工具。应该设置您的构建和部署过程,以便只有来自官方存储库的更改才能推送到生产中。