PHP项目在Debian上开发,版本控制是保障协作与回溯的关键。下面从Git环境配置开始,逐步覆盖远程仓库协作、文件忽略、数据库版本化以及自动化部署等环节,适合团队协作场景参考。

基础环境准备
先从环境准备说起。在Debian上安装Git只需一条命令:sudo apt update && sudo apt install git。装完别忘了绑定身份,否则提交记录里全是“anonymous”。执行git config --global user.name "Your Name"和git config --global user.email "your.email@example.com"就行。
接下来把PHP项目纳入版本管理。进入项目目录,cd /path/to/your/php/project,然后初始化仓库:git init。接着把当前所有文件加入暂存区:git add .,最后提交:git commit -m "Initial commit"。从此每个改动都有据可查。
远程仓库与日常协作
代码放在本地不够保险,推送到远程仓库才是正解。GitHub、GitLab或Bitbucket都行,建一个空仓库,拿到远程地址(HTTPS或SSH)。
关联远程仓库:git remote add origin 。第一次推送用git push -u origin master(如果默认分支是main,把master换成main)。以后日常同步:git pull origin master拉取,git push推送。
分支策略推荐功能开发从master分出feature/xxx,紧急修复用hotfix/xxx。开发完后切回master,git merge feature/xxx,遇到冲突手动解决再提交。这套流程能让多人协作井井有条。
忽略文件与环境管理
.gitignore是版本控制的“安检门”,能避免编译产物、IDE配置、日志文件污染仓库。建议忽略以下内容:
- 编辑器临时文件:
*.swp、*.swo - IDE目录:
.idea/、.vscode/ - 依赖目录:
vendor/、node_modules/ - 运行时日志:
runtime/、var/、storage/、*.log - 环境变量文件:
.env(以及composer.lock、package-lock.json根据团队约定决定)
环境配置分离也很关键。把敏感配置(数据库密码、API密钥等)放在.env里,仓库中只提交一个.env.example作为模板。既保证安全,又方便新人快速上手。
数据库变更与版本化
数据库schema的变化如果不记录,回滚时就是一场灾难。常见做法有两种:
- 结构变更脚本:使用迁移工具(如Phinx、Lara vel Migrations)编写可回滚的SQL脚本,放入
migrations/目录,随代码一起提交发布。这样每次部署都能同步数据库结构。 - 数据备份脚本:定期导出数据库结构和数据快照,例如
mysqldump -u username -p database_name > database_backup.sql,提交到仓库以便追溯和回滚。不过要注意脱敏和访问控制,避免泄露线上数据。
自动化部署与IDE集成
自动化部署能省掉大量重复劳动。以Ansible为例,核心步骤:
- 安装依赖:
sudo apt install php php-cli php-fpm git ansible - 拉取代码:
git clone或git pull到部署目录(如/var/www/yourapp) - 安装PHP依赖:
composer install --no-interaction --prefer-dist - 重启服务:
systemctl restart php7.4-fpm和systemctl restart nginx
把这些步骤写成Playbook,就能一键部署、滚动更新。
如果常在Debian桌面环境下用PhpStorm开发,IDE自带的Git集成也很顺手。启用VCS(VCS > Enable Version Control Integration > Git),添加远程仓库(VCS > Git > Remotes),推送、拉取、分支切换都在图形界面完成。适合不习惯敲命令的开发者。