问题 我应该使用Git来部署网络应用吗?


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


9497
2017-08-20 18:24


起源

@bcat:感谢您的编辑。不知道我是怎么错过那个的。 - DLH
非常明显的缺陷是,如果你进入非裸存储库,工作树(实际文件)将会 不 得到更新。我无法相信没有一个答案提到这一点。 - Cascabel
@Jefromi:非常的。其实我 刚刚找到了解决方案。 - DLH
是的,它是可以解决的,你只需要知道它。您还需要将repo配置为显式允许推送到当前分支,默认情况下拒绝该分支。 config参数是 receive.denyCurrentBranch。 - Cascabel


答案:


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


5
2017-08-20 18:26





我认为这是一个很好的方法。我以类似的方式处理事物,其中实时站点只是从存储库中检出,并且我会根据需要更新它们。


4
2017-08-20 18:25



+1。如果你想检查服务器上的变化(你需要运行的只是一个查找新文件或修改过的文件的状态命令),它会让事情变得非常好...... - ircmaxell


Git很好,但你可以做得更好,然后只使用git pull。看一眼 railess部署 对于 Capistrano的

Capistrano基本上结合使用rsync和git pull来部署您网站的副本。它支持角色转移,登台和分布式部署。


2
2017-08-20 18:39





并且可以将在线修补程序推回到开发阶段。
能做一个 git status 在现场系统上可以是现场救星。

去吧!

注意事项

  • 确保无法从Web访问“.git”文件夹。
  • 使用PHP,源代码通常存在于Web服务器上,因此不会添加 额外 服务器被黑客攻击的风险。

1
2017-08-20 18:26



这不是QA阶段的目的吗?这样你就不会制作在线修补程序了吗?哎呀大多数地方甚至不让他们的开发人员访问生产服务器,但单独解决问题...(但这是一个关于向后移植修复的有效点)... - ircmaxell
因为在问答阶段之后,项目始终是无障碍的......?我想要你的问答公司的名字;) - Bob Fanger
不,但是因为任何错误修复都需要在投入生产之前通过QA(试图消除回归的可能性)...... - ircmaxell


我会赞成使用这样的技术,只因为你可以确定你部署的网站上的任何东西也在git中被跟踪。也就是说,它鼓励采用最佳做法,并阻止不受源代码管制的临时变更。

有关另一种选择,请查看本文,了解Twitter如何使用BitTorrent来管理部署: http://torrentfreak.com/twitter-uses-bittorrent-for-server-deployment-100210/ 当您需要在大量服务器上快速部署时,它可能非常有用。


0
2017-08-20 18:27





我认为这是一个很好的解决方案我一直用它来部署我的网站很长时间......很好,因为你几乎可以通过更新文件夹立即将你的更改推送到生产中。我没有遇到任何安全问题或任何问题。

请享用!


0
2017-08-20 18:27