【问题标题】:Deploying code to production server(s) from Git从 Git 将代码部署到生产服务器
【发布时间】:2012-03-26 19:44:10
【问题描述】:

过去一周我一直在阅读 Git,并试图弄清楚如何将它融入我们的公司。那里有很多信息,在其他资源中,我发现Pro Git book 非常有用。然而,对我来说仍然是一个谜(这本书也没有)是如何将 Git 存储库“链接”到我们的生产服务器。

我们当前的设置由一个 SVN 服务器组成,我们都承诺使用它(我发现这可以通过在共享位置设置一个裸 Git 存储库并推送到它来实现)。我们的生产服务器(有多个客户运行相同的 PHP 代码库)目前是 SVN 工作副本,我们通过运行 svn up 一次手动更新一个。

在 Git 中解决这个问题的最佳方法是什么?我曾考虑将生产服务器作为远程服务器添加到我的 Git 存储库 and pushing to them 中,但我认为如果不同的服务器获得不同的推送历史记录,这可能会造成混乱(我猜这是你实际上需要集中它的一个场合)。还是需要使用https://github.com/mislav/git-deploy 之类的工具?

我不禁感到 Git 开发人员“并没有真正考虑到这一点”.. 我希望我遗漏了一些东西 :)

【问题讨论】:

  • 嘿,我有一个简单的问题。我只是想验证一下。我不确定这是否正确,但这完全没问题,你应该在生产服务器中有一个 git repo 来推送你的文件,对吗?我的意思是这个问题巧妙地回答了它,但我实际上想在这里回答是的,哈哈。我很感激。

标签: php git deployment


【解决方案1】:

您可以使用 git 实现相同的工作流程。设置一个裸仓库,将代码推送到您的生产服务器上并克隆该仓库。当事情发生并且你想更新你的生产仓库时,只需执行“git pull”而不是“svn up”。

这是一个让事情顺利进行的良好开端。过了一会儿,你可能想要自动化这个,你可以做很多很酷的事情,例如git 钩子。

【讨论】:

  • 这对你来说可能也很有趣:A web-focused Git workflow
  • @hakre 确实是一个有趣的钩子脚本演示(虽然我不会使用这个工作流程,因为我们从不直接修改生产服务器上的代码)
  • 我有一个相关的问题。比如说,您使用诸如“BeanStalkApp”或“SpringLoops.com”之类的部署工具。您将代码签入到 Git,然后使用 Beanstalkapp 或 Springloops 将您的代码通过 ftp/sftp 传输到部署服务器。但是,如果您也有数据库更改怎么办?您如何确保数据库更改也在部署服务器上完成? Git pull 或 BeanstalkApp/Springloops 将简单地发送您的新 php 文件。但是,如果您还需要对 db 进行更改,您如何在自动部署中适应呢?说,您添加/删除表,添加/删除列。 @hakre
  • 修改您的数据库。使用迁移脚本迁移它。单向(仅向上修订)或双向(向上和向下修订)。一个 php 脚本检查数据库修订并小心处理。 dbdeploy.com -- How do you version your database schema?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
相关资源
最近更新 更多