Web开发工作流程

Dav*_*veR 7 git web

现在是时候了解源代码控制,尤其是git.

我做了很多web开发,大部分时间我在实时生产服务器上做了很多开发工作.我知道这真的很糟糕.

我还没有完全了解本地开发,然后使用git部署到实时站点.

以下是如何解决的:

  1. 在我的本地计算机上设置一个尽可能靠近我的Web服务器的环境

  2. 创建一个git文件夹,我将在其中开发我的项目(或从实时服务器下载现有项目).

  3. 当我准备好推送我的更改时,请在git中提交它们.

我不确定的是以下内容:

  • 如何将我的更改推送到实时服务器?
  • 如果我不小心删除了我的本地副本怎么办?
  • 我的数据库怎么样?如果我在本地计算机上添加新表和数据,我是否需要在我的实时服务器上手动进行这些更改?

编辑

是的,对不起,还不够详细.

我在Coda for Mac中完成所有编码,我在移动中有几个不同的项目,但其中大部分是在Apache上运行的PHP/YII.选择的数据库是MySQL.

PHP正在进行中.

sha*_*non 7

如果您的网站不需要编译,您可能只是选择直接从Git存储库部署它.

  • 像往常一样,在本地盒子上进行开发.
  • 将代码检查到Github或其他类似的网站
  • 由于您不需要编译您的站点,因此您的Git副本几乎可以随时使用
  • 您要么从APACHE服务中排除.git目录,要么 在"git clone"之后删除它们

您的数据库是另一个问题.你可能会:

  • 编写脚本以对数据库进行更改,而不是在UI中进行更改
  • 在某处(可能在数据库中)包含标识当前架构的版本标记
  • 使用数据库版本号命名脚本(我还保留了兼容性所需的相关代码修订的指示器 - 我自动使用Git变更集ID标记)
  • 按顺序,运行大于当前数据库版本的所有脚本(但不要大于当前的软件版本.我也编写了这个过程)

您可以在开发计算机上一点一点地完成所有这些操作,就像您在生产中一样.什么时候去,你仍然可能想要测试:

  • 使用友好的分支名称标记您的修订版本,例如Release23a或您选择的任何内容,以便稍后查找
  • 将生产数据库复制到测试环境(可以阻止升级的实时数据问题是PAIN)
  • 将整个软件包部署到测试环境,运行MySQL脚本并执行Git导出(使用新的分支名称)

然后,你可能会像往常一样继续工作并检查Git.通常,您将处于实施丑陋的代码中并需要快速修补您的实时站点.但是你不想只是将黑客代码放入你的实时网站.代替:

  • 查看您的Release23a
  • 制作修补程序
  • 像往常一样检查它(它将保存到Release23a分支)
  • 再次标记,Release23b
  • 像以前一样部署(Release23b)
  • 将Release23b合并回主代码行

关于分支的快速说明.您可以随时返回并按日期/时间查看您签入的任何版本,但通过名称更容易找到它们.此外,一旦分支,您可以在该分支上工作,然后再次检入.现在,您的代码行中存在分叉.你正在改变昨天的热度,它并没有自动应用到今天的热度.如果你想要,你必须手动合并它.合并是说"Git客户端的过程,请尝试自动将Release23a/Release23b delta中的所有代码编辑应用到我最新的热点".

如您所见,Git提供了一些非常酷的工具.删除您的本地代码不是问题,假设您一直很好并经常检查.

请注意,Git具有本地提交的概念.在您同步之前,这些不会将您的工作从硬盘驱动器崩溃中保存下来.