Git Workflow: Quy Trình Phát Triển Toàn Diện Từ A-Z

Hướng dẫn chi tiết về quy trình phát triển phần mềm với Git, từ khởi tạo project đến release, bao gồm best practices và tips quan trọng cho dev.
Please wait 0 seconds...
Scroll Down and click on Go to Link for destination
Congrats! Link is Generated

Git là công cụ không thể thiếu trong quy trình phát triển phần mềm hiện đại. Bài viết này sẽ hướng dẫn bạn một quy trình Git toàn diện, từ khi bắt đầu dự án cho đến khi release sản phẩm.

Mục lục

Quy Trình Phát Triển Cơ Bản

Khởi Tạo Dự Án

git init
git add .
git commit -m "Initial commit"
git remote add origin <repository-url>
git push -u origin main

Tạo và Phát Triển Feature Branch

# Tạo branch mới
git checkout main
git pull origin main  # Đảm bảo có code mới nhất
git checkout -b feature/new-feature

# Làm việc và commit
git add .
git commit -m "feat: add new feature"
git push -u origin feature/new-feature

Quy Trình Pull Request

  1. Tạo PR từ feature branch vào main
  2. Code review
  3. Sửa code theo feedback
  4. CI/CD tự động chạy test

Merge và Release

# Sau khi PR được approve
git checkout main
git pull origin main

# Tạo tag và release
git tag -a v1.0.0 -m "Version 1.0.0"
git push origin v1.0.0

Best Practices và Quy Ước

Format Commit Message

# Format chuẩn
<type>(<scope>): <description>

# Ví dụ
feat(auth): add login with Google
fix(api): handle null response
docs(readme): update installation guide
    Types phổ biến
  • feat: Thêm tính năng mới
  • fix: Sửa lỗi
  • docs: Thay đổi documentation
  • style: Thay đổi không ảnh hưởng đến code (format, spaces, semicolons...)
  • refactor: Refactor code không thay đổi logic
  • test: Thêm hoặc sửa tests
  • chore: Các thay đổi về build process, công cụ, thư viện...
  • perf: Cải thiện performance
  • ci: Thay đổi CI configuration
  • build: Thay đổi build system hoặc dependencies
  • revert: Revert commit trước đó
    Scopes phổ biến
    1. Theo components/modules:
      • auth: Authentication/Authorization
      • api: API endpoints
      • ui: User interface
      • db: Database
      • core: Core functionality
      • utils: Utilities
      • config: Configuration
    2. Theo technical layers:
      • frontend
      • backend
      • middleware
      • services
      • models
      • controllers
      • views
    3. Theo functionality:
      • user
      • admin
      • logging
      • security
      • cache
      • search
      • email
      • payments
    4. Theo infrastructure:
      • docker
      • k8s
      • aws
      • ci
      • deploy
      • monitoring

Quy Ước Đặt Tên

  • Branch:
    • feature/feature-name
    • bugfix/issue-description
    • hotfix/urgent-fix
    • release/v1.0.0
  • Tags:
    # Release tags
    v1.0.0
    v1.0.1
    
    # Pre-release tags
    v1.0.0-alpha.1
    v1.0.0-beta.1

Semantic Versioning

  • MAJOR.MINOR.PATCH (v1.0.0)
  • Major: thay đổi breaking changes
  • Minor: thêm tính năng mới (backward compatible)
  • Patch: sửa lỗi

Xử Lý Tình Huống Thực Tế

Xử Lý Conflicts

git checkout main
git pull origin main
git checkout feature/branch
git rebase main
# Resolve conflicts
git push -f origin feature/branch

Bảo Vệ Branch

  • Khóa push trực tiếp vào main
  • Yêu cầu ít nhất 1-2 approvals cho mỗi PR
  • Yêu cầu CI/CD pass
  • Yêu cầu commit được signed

Clean Up Sau Release

# Xóa feature branch đã merge
git branch -d feature/new-feature
git push origin --delete feature/new-feature

# Cập nhật các branch khác
git checkout develop
git merge main

Tips Quan Trọng

  • Pull Code Mới: Luôn pull code mới nhất trước khi tạo branch
  • Commit Thường Xuyên: Mỗi commit một mục đích rõ ràng
  • Rebase vs Merge: Ưu tiên rebase khi cập nhật feature branch
  • Squash Commits: Gộp commits trước khi merge vào main
  • Force Push: Không push --force vào main
  • Backup: Backup tags và releases quan trọng
  • Gitignore: Sử dụng .gitignore đầy đủ

Kết Luận

Quy trình Git là một phần quan trọng trong phát triển phần mềm. Việc tuân thủ các best practices và quy ước sẽ giúp team làm việc hiệu quả hơn và tránh được nhiều vấn đề phát sinh.

Tài Liệu Tham Khảo

  • Git Documentation
  • GitHub Guides
  • GitLab Documentation

Đăng nhận xét

Tham gia cuộc trò chuyện