PHP项目代码版本如何使用Git管理

wen PHP项目 20

本文目录导读:

PHP项目代码版本如何使用Git管理

  1. 项目初始化
  2. 常用Git工作流程
  3. 提交信息规范(Conventional Commits)
  4. PHP特定注意事项
  5. 标签和发布
  6. 团队协作最佳实践
  7. 常见问题解决
  8. 自动化和部署
  9. 安全注意事项
  10. 日常操作速查表

在PHP项目中使用Git进行版本管理,建议遵循以下最佳实践:

项目初始化

创建仓库

# 在项目目录初始化
git init
# 或克隆已有仓库
git clone https://github.com/yourname/your-project.git

创建.gitignore文件

# PHP
*.log
vendor/
.env
.env.local
.phpunit.result.cache
# IDE
.idea/
.vscode/
*.swp
*.swo
# OS
.DS_Store
Thumbs.db
# 缓存和日志
/storage/*
!storage/app
!storage/logs/.gitkeep
# 编译文件
/dist
/build
/node_modules

常用Git工作流程

基础工作流

# 查看状态
git status
# 添加文件
git add filename.php
git add .  # 添加所有变更
# 提交
git commit -m "feat: 添加用户注册功能"
# 推送到远程
git push origin main

分支策略(推荐Git Flow)

main (生产分支)
  └── develop (开发分支)
       ├── feature/user-auth
       ├── feature/payment
       ├── bugfix/login-error
       └── release/1.0.0
# 创建功能分支
git checkout -b feature/add-payment develop
# 完成后合并到dev
git checkout develop
git merge feature/add-payment
git branch -d feature/add-payment

提交信息规范(Conventional Commits)

feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式
refactor: 重构
test: 测试相关
chore: 构建/工具

示例:

feat: 实现支付模块API接口
- 添加支付宝支付接口
- 添加微信支付接口
- 支付回调处理
Closes #123

PHP特定注意事项

配置文件管理

# 提交模板文件
cp .env.example .env
git add .env.example
# .env文件永远不要提交
echo ".env" >> .gitignore

composer.lock管理

# 提交composer.lock确保依赖版本一致
git add composer.json composer.lock
git commit -m "chore: 更新依赖版本"

标签和发布

# 创建版本标签
git tag -a v1.2.0 -m "Release v1.2.0: 添加购物车功能"
git push origin v1.2.0
# 查看标签
git tag -l

团队协作最佳实践

代码审查流程

# 推送前先拉取最新代码
git pull origin develop --rebase
# 解决冲突后推送
git push origin feature/my-feature
# 在GitHub/GitLab创建Pull Request

保护分支设置

  • main分支设为protected
  • 禁止直接推送到main
  • 要求PR审查后方可合并

常见问题解决

撤销操作

# 撤销工作区修改
git checkout -- filename.php
# 撤销暂存区
git reset HEAD filename.php
# 撤销最后一次提交(保留修改)
git reset --soft HEAD~1
# 完全撤销到某个版本
git reset --hard commit_hash

解决冲突

# 标记冲突文件,手动修改后
git add resolved-file.php
git commit -m "fix: 解决user模块合并冲突"

自动化和部署

配置Hooks(.git/hooks)

# pre-commit hook示例:检查PHP语法
#!/bin/sh
for file in $(git diff --cached --name-only --diff-filter=ACM | grep '.php$'); do
    php -l "$file" || exit 1
done

集成CI/CD

# .github/workflows/ci.yml
name: PHP CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.1'
      - run: composer install
      - run: vendor/bin/phpunit

安全注意事项

  • 永远不要提交包含敏感信息的文件(API密钥、密码等)
  • 使用git-secrets或类似工具防止敏感信息泄露
  • 定期清理Git历史中的敏感数据(git filter-branch

日常操作速查表

# 开始新功能
git checkout develop
git pull
git checkout -b feature/new-feature
# 完成功能
git add .
git commit -m "feat: 完成新功能"
git checkout develop
git pull
git merge feature/new-feature
git push origin develop
# 紧急修复
git checkout main
git checkout -b hotfix/critical-bug
# 修复并测试
git checkout main
git merge hotfix/critical-bug
git tag -a v1.0.1 -m "Hotfix"
git push origin main --tags

这套流程能有效管理PHP项目的代码版本,提高团队协作效率,确保代码质量。

抱歉,评论功能暂时关闭!