2010-08-20 135 views
11

我使用Git来跟踪我的PHP Web应用程序中的本地更改,我想知道是否在服务器上使用Git也是一个好主意,以便我可以使用git push部署我的更改。这种方法会有什么陷阱吗?我应该使用Git来部署Web应用程序吗?

+0

@bcat:感谢您的编辑。不知道我错过了那一个。 – DLH 2010-08-20 18:32:11

+3

非常明显的错误是,如果你推入非裸仓库,工作树(实际文件)将不会被更新。我无法相信没有任何答案提到这一点。 – Cascabel 2010-08-20 20:11:08

+1

@Jefromi:非常真实。我其实[只是找到了解决方案。](http://stackoverflow.com/questions/279169/deploy-php-using-git) – DLH 2010-08-20 20:17:48

回答

5

这似乎是一种很好的做事方式。如果您正确地标记和分支,它将使您能够在发生故障时快速切换回您网站的工作版本。

4

我认为这是一个很好的做法。我以类似的方式处理事情,其中​​活网站只是从存储库中签出,并根据需要进行更新。

+0

+1。如果您想检查服务器上的更改(所有您需要运行的是查找新文件或修改文件的状态命令),它会使事情变得非常好。 – ircmaxell 2010-08-20 18:25:49

1

可以将在线修补程序推回开发。
能够在现场系统上执行git status可以成为现场救援。

去吧!

注意事项

  • 确保了“git的”文件夹不是从网络访问。
  • 使用PHP时,源代码通常存在于网络服务器上,因此在服务器遭到黑客入侵的情况下不会增加的附加风险。
+0

这不就是QA阶段的目的吗?所以你永远不会做在线修补程序?大多数地方甚至不允许开发人员访问生产服务器,但单独修复事情......(但它是关于backport修补程序的有效观点)... – ircmaxell 2010-08-20 18:28:34

+0

因为在问答阶段后项目总是无故障的...? 我想要你的公司的名称Q &A ;) – 2010-08-20 18:41:20

+0

不,但是因为在投入生产之前需要通过质量检查的任何错误修复(以尝试消除回归的可能性)... – ircmaxell 2010-08-20 18:48:02

0

如果仅仅因为您可以确定您部署的网站上的任何内容也正在git中进行跟踪,那么我会赞成使用这种技术。也就是说,它鼓励最佳做法,并阻止不受源代码控制的特别更改。

有关另一种替代方法,请查看关于Twitter如何使用BitTorrent管理部署的文章:http://torrentfreak.com/twitter-uses-bittorrent-for-server-deployment-100210/ 当您需要在大量服务器上快速部署时,这可能是最有用的。

0

我认为它是一个很好的解决方案。我一直在使用它来部署我的网站很长一段时间......这很好,因为只需更新文件夹,您几乎可以立即将更改投入生产。我没有遇到任何安全问题或任何问题。

享受!

2

Git很好,但你可以做得更好,然后使用git pull。 capistrano请看railess deploy

Capistrano基本上做了rsync和git pull的组合来部署你的网站的副本。它支持角色备份,分段和分布式部署。