使用Git将多个项目部署到服务器的最佳方法是什么?

时间:2010-09-13 21:44:53

标签: git version-control deployment

我即将采取行动并开始使用Git进行其他人使用的实际项目!

到目前为止,我已经在一些基础项目中使用了Git,并在Github上参与了一些大学项目,但现在我和其他一些项目正在开展多个项目。因此,我们将在远程服务器上托管Git,说实话,如果我们能够开始使用Git来满足我们的需求,那就很好了。

起初我们想过在服务器上托管Git主人,一个......

  

网站: / home / vhosts / domain / htdocs

     

Git: /home/git/domain.git

这听起来好像有用,但是我担心在主网站运行的服务器上托管一个存储库,以防它出现故障或者我们丢失了数据,因为我们会留下我们的本地副本。我想让它全部在开发服务器上运行,但是有些人认为它太过分了,有些东西在逻辑上可能是一场噩梦。

公平地说,我们都是刚刚毕业的学生,​​并且只拥有关于爱好项目的源控制的基本经验,而且仅仅是最后一年的CS项目,当时流行的选择是颠覆。我们选择Git的原因之一是通过其他开发人员的口口相传以及在工作中广泛使用它的朋友的建议。

为了澄清,我们将处理多个托管项目,并希望使用Git进行部署。我们坚持的是处理这个问题的最佳方法。我们中的大约三个人在任何时候使用实时服务器和(希望)开发服务器在不同的机器上进行测试。

对于那些主要处理Web应用程序的人,如何使用Git将工作代码部署到服务器?我们是否因为需要而吠叫错误的树?你能给Git新手的任何提示吗?

4 个答案:

答案 0 :(得分:4)

您需要了解的是,所有Git存储库基本上都是“本地的”。

使用git clone克隆存储库时,您将获得整个存储库及其所有更改和日志。如果您丢失了远程存储库,则您的本地克隆可以直接从远程存储库中取出。

此外,您可以将多个远程存储库连接到本地存储库:例如,当我在一个站点上工作时,我将拥有自己的本地存储库,以及开发服务器上的远程存储库和生产服务器。然后,这只是根据上下文拉动和推动正确的问题。

这些远程存储库并不特别:它们只是我计算机上包含相同内容的目录。

因此,您唯一需要担心的是确保您的团队中的每个人都可以访问您的远程存储库:如果您没有任何其他地方可以放置它,那么您拥有该站点的服务器就可以了。

答案 1 :(得分:2)

如果你想与一个(或不同的)团队合作,你应该看看Gitosis:这是一个管理多个Git项目的简单方法,用户可以使用自定义访问权限(读/写)和项目。

Gitosis教程:http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

另一种解决方案是Gitolite,即Gitosis进化。

答案 2 :(得分:2)

我实际上写了一个blog post关于我用来将我的网站从本地计算机部署到登台服务器然后是现场网站的过程,因为它有点复杂。如果要使用双层分发体系结构(登台服务器,然后是实时服务器),则写入可能对您有用。如果您不想使用登台服务器,可以将本地计算机配置为直接推送到实际站点,这样更简单。当然,该设置仍然允许您在本地计算机上进行测试。

除此之外,我会回应马克特拉普关于git的分散性质所说的话。将中央存储库放在Web服务器上没有问题,因为本地副本包含了继续工作所需的一切,并在必要时重建另一个中央存储库。

答案 3 :(得分:0)

我们使用gitosis管理多个用户的多个存储库: http://fclose.com/b/1432/setting-up-git-server-using-gitosis/

以前我们通过SSH连接使用git。这将使每个人都是管理员。所以我们转向gitosis。我们可以控制谁可以写入一个存储库以及谁可以读取一个存储库。我们可以有几个管理员。我们还可以设置电子邮件通知方案。我们现在很高兴。