如果您的网站不需要编译,您可以选择直接从 Git 存储库部署它。
- 像往常一样在本地机器上进行开发。
- 经常将您的代码检查到 Github 或其他类似的站点
- 由于您不需要编译您的网站,您的 Git 副本几乎可以直接使用
- 您要么想从 APACHE 服务中排除 .git 目录,要么
在“git clone”之后删除它们
您的数据库是另一个问题。你可能会:
- 编写脚本来更改您的数据库,而不是在 UI 中进行更改
- 在某处(可能在数据库中)包含一个版本标记来标识当前模式
- 用数据库版本号命名您的脚本(我还保留了兼容性所需的相关代码修订的指示符 - 我自动用 Git 变更集 ID 标记它)
- 按顺序运行所有大于当前数据库版本的脚本(但不大于当前软件版本。我也编写了这个过程)
你在你的开发机器上零零碎碎地做这一切,就好像你在生产中做一样。到了该走的时候,您仍然可能真的想要测试:
- 使用友好的分支名称标记您的修订,例如 Release23a 或您选择的任何名称,以便您以后找到它
- 将您的生产数据库复制到测试环境(可能会在中途阻止升级的实时数据问题是一种痛苦)
- 将整个包部署到测试环境,运行 MySQL 脚本并执行 Git 导出(使用新分支名称)
然后,您可能会像往常一样继续工作并检查 Git。通常,您将在实现一段难看的代码的过程中,需要快速修补您的实时站点。但是您不想只是将代码破解到您的实时站点中。反而:
- 查看您的 Release23a
- 制作您的修补程序
- 像往常一样签入(它将保存到 Release23a 分支)
- 再次标记它,Release23b
- 像以前一样部署 (Release23b)
- 将 Release23b 合并回您的主代码行
关于分支的快速说明。您可以随时返回并按日期/时间获取您签入的任何版本,但按名称查找它们更容易。此外,一旦你分支,你可以在那个分支上工作,然后再次签入。现在,您的代码线出现了分歧。您正在对昨天的热度进行更改,它不会自动应用于今天的热度。如果你想要,你必须手动合并它。合并是说“Git 客户端,请尝试自动将 Release23a/Release23b delta中的所有代码编辑应用到我最近的热点”的过程。
如您所见,您可以使用 Git 提供一些非常酷的工具。假设您一直很好并且经常签到,删除您的本地代码不是问题。
请注意,Git 具有本地提交的概念。在您同步之前,这些不会将您的工作从硬盘驱动器崩溃中拯救出来。