我将我的cakephp项目部署在共享主机中,但它没有版本化。我想使用git或mercurial对其进行版本化,并轻松部署更改。我需要采取哪些步骤?我应该首先在我的共享主机中安装git并在我的本地环境中进行克隆吗?我应该在共享主机中有一个带repos的单独文件夹,然后使用某个实用程序部署更改吗?
谢谢
答案 0 :(得分:1)
subversion服务器应该与生产服务器不同。您可以在github上创建一个帐户并将其作为私有项目托管在那里。
在生产服务器上,当您想要进行更新时(或使用持续集成服务器 - jenkins,teamcity,bamboo等),您只需提取最新的更改
在本地,您可以将更改推送/拉到同一个subversion服务器。
答案 1 :(得分:1)
许多共享托管站点不允许您在其服务器上拥有shell访问权限,而某些托管站点没有安装git。如果您依赖于直接将更改提取到生产服务器,那么当您被要求在不支持shell / git的服务器上安装时,您必须做一些不同的事情......这很痛苦。
这是一个适合我的解决方案:
如果您对开发网站感到满意,请提交并推送您的更改。然后将项目(在IDE中)更改为生产版本。拉动并合并您的更改(但尚未提交)。然后我的IDE允许我只上传已更改的文件,然后我提交。
我意识到这不是许多人采用的解决方案,正如cornelb所说,持续集成服务器可能会简化这一过程。但它对我来说效果很好,只需要FTP访问您部署代码的共享服务器。
答案 2 :(得分:1)
您是否可以在共享主机中安装Git?在大多数情况下,他们不会允许它。
如果是,您可以使用post-receive
挂钩检查项目目录中的文件:
GIT_WORK_TREE=/var/www/example.org git checkout -f
或者您可以使用这些工具之一,通过FTP从本地git仓库进行部署。