使用 git 版本控制进行 PHP 开发


Using git version control for PHP development

是否可以对PHP + MySQL + Apache项目进行版本控制?它是否可以跟踪数据库中的更改,例如,如果我添加了一个新表,我可以提交吗?

谢谢。

将数据库保留在版本控制中是不正常的。一些开发人员使用 sqlite 数据库进行开发,以便可以将其签入版本控制,但这可能会导致问题,因为 sqlite 语法可能与 MySQL 不同。

但是,您可以保留数据库架构和迁移源代码管理。查看诸如mysql-php-migrations之类的项目以开始使用。

有一个关于在 http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/中使用 PHP 和 Git 的好教程 - 这应该让你入门。

将 Git 用于 PHP 脚本没有问题,但是跟踪对数据库的更改有点棘手。如果您有创建数据库结构的 SQL 脚本,则可以毫无问题地对这些脚本进行版本控制。否则,您可以在进行任何更改后使用 mysqldump 将结构输出到 SQL 脚本:

mysqldump -d -h localhost -u root -pmypassword mydatabase > dumpfile.sql 

您可以使用 git 来跟踪创建必要数据库结构的 PHP 脚本和 SQL 脚本。当然,这些 SQL 脚本可以进行版本控制,并在任何给定状态下重新创建数据库架构。

Git 本质上是 SCM,意思是源代码管理。mysql 中的表存储为二进制文件,所以这不是一个好主意。

但是,您可以存储创建这些表的 SQL 查询,从而允许您在需要时重新创建它们。

至于php,一切都会很好。

我最近发布了一个非常简单的shell脚本,它将有助于将对MySQL数据库的更改保持在版本控制之下。

https://github.com/stevecomrie/mysql-version-control