绝对是我学习源代码管理的时候了,尤其是 git。
我做了很多 Web 开发,大部分时间我在实时生产服务器上做很多开发工作。我知道这真的很糟糕。
我只是不太了解本地开发然后使用 git 部署到实时站点的工作原理。
下面是它可能如何运作:
在我的本地机器上设置一个尽可能靠近我的网络服务器的环境
创建一个 git 文件夹,我将在其中开发我的项目(或从实时服务器下载现有项目)。
当我准备好推送我的更改时,将它们提交到 git 中。
我不确定的是:
- 如何将我的更改推送到实时服务器?
- 如果我不小心删除了我的本地副本怎么办?
- 我的数据库呢?如果我在本地计算机上添加新表和数据,是否也需要在我的实时服务器上手动进行这些更改?
编辑
是的,抱歉,不够详细。
我在 Coda for Mac 中完成所有编码,我有几个不同的项目,但其中大部分是在 Apache 上运行的 PHP/YII。选择的数据库是MySQL。
PHP 正在走向原始。
最佳答案
如果您的网站不需要编译,您可以选择直接从 Git 存储库部署它。
- 像往常一样在本地机器上进行开发。
- 经常将您的代码检查到 Github 或其他类似网站
- 由于您不需要编译站点,因此您的 Git 副本几乎可以使用了
- 您要么想从 APACHE 服务中排除 .git 目录,要么 remove them在“git clone”之后
您的数据库是另一个问题。你可能会:
- 编写脚本来更改数据库,而不是在 UI 中进行更改
- 在某处(可能在数据库中)包含一个版本戳以标识当前模式
- 用数据库版本号命名您的脚本(我还保留兼容性所需的相关代码修订的指示器 - 我自动用 Git 变更集 ID 标记它)
- 按顺序运行所有大于当前数据库版本的脚本(但不大于当前软件版本。我也编写了这个过程)
您在开发机器上零零碎碎地完成所有这些工作,就像在生产环境中一样。到了该走了的时候,您仍然可能真的想要测试:
- 用友好的分支名称标记您的修订版,例如 Release23a 或您选择的任何名称,以便您以后可以找到它
- 将您的生产数据库复制到测试环境(可能会在中途阻止升级的实时数据问题是一个难题)
- 将整个包部署到测试环境,运行 MySQL 脚本并进行 Git 导出(使用新的分支名称)
然后,您可能会像往常一样继续工作并检查 Git。通常,您会在执行一些丑陋的代码的过程中需要快速修补您的实时站点。但是您不想只是将黑客代码放入您的实时站点。相反:
- 检查您的 Release23a
- 制作你的修补程序
- 照常 checkin (它将保存到 Release23a 分支)
- 再次标记,Release23b
- 像以前一样部署(Release23b)
- 将 Release23b merge 回您的主代码行
关于分支的快速说明。您可以随时返回并获取您按日期/时间 checkin 的任何版本,但按名称查找它们更容易。此外,分支后,您可以在那个分支上工作,然后再次 checkin 。现在您的代码线出现了分歧。您正在对昨天的热度进行更改,它不会自动应用到今天的热度。如果你想要那个,你必须手动 merge 它。 merge 是说“Git 客户端,请尝试将 Release23a/Release23b 中的所有代码编辑自动应用到我的最新热点”的过程。
如您所见,Git 提供了一些非常酷的工具。删除您的本地代码不是问题,前提是您表现良好并且经常 checkin 。
注意 Git 有本地提交的概念。在您同步之前,这些不会将您的工作从硬盘驱动器崩溃中拯救出来。
关于git - 网页开发工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226395/