GIT

Để sử dụng Git một cách chuẩn trong một dự án thực tế tại công ty, bạn cần tuân thủ quy trình làm việc (workflow) rõ ràng, đảm bảo tính nhất quán, dễ quản lý và tránh xung đột. Dưới đây là hướng dẫn chi tiết:


1. Cấu hình Git ban đầu

  • Khởi tạo Git: Nếu dự án chưa có repository, tạo mới với lệnh:

    git init

    Hoặc clone từ remote repository:

    git clone <repository-url>
  • Cấu hình thông tin cá nhân:

    git config --global user.name "Tên của bạn"
    git config --global user.email "email@congty.com"
  • Kiểm tra cấu hình:

    git config --list

2. Quy trình làm việc với Git (Git Workflow)

Trong công ty, thường sử dụng mô hình Gitflow hoặc Trunk-based development. Dưới đây là cách áp dụng Gitflow (phổ biến nhất):

a. Cấu trúc branch

  • main: Branch chính, chứa mã ổn định đã được kiểm tra và sẵn sàng deploy.

  • develop: Branch tích hợp các tính năng mới, dùng để kiểm tra trước khi merge vào main.

  • feature/: Branch cho từng tính năng cụ thể, ví dụ: feature/login-system.

  • bugfix/: Branch sửa lỗi, ví dụ: bugfix/fix-login-error.

  • hotfix/: Branch sửa lỗi khẩn cấp trên main, ví dụ: hotfix/critical-bug.

  • release/: Branch chuẩn bị phát hành, ví dụ: release/v1.0.0.

b. Quy trình làm việc

  1. Tạo branch mới cho tính năng hoặc lỗi:

  2. Làm việc trên branch:

    • Thực hiện các thay đổi mã nguồn.

    • Commit thường xuyên với thông điệp rõ ràng:

      Ví dụ: git commit -m "Add user authentication for login page"

  3. Cập nhật branch từ develop (để tránh xung đột):

    Giải quyết xung đột nếu có.

  4. Push branch lên remote:

  5. Tạo Pull Request (PR)/Merge Request:

    • Truy cập giao diện GitHub/GitLab/Bitbucket, tạo PR từ feature/<ten-tinh-nang> sang develop.

    • Điền mô tả chi tiết về thay đổi, mục đích, và các kiểm tra đã thực hiện.

    • Gán reviewer để kiểm tra mã.

  6. Review và Merge:

    • Đồng nghiệp sẽ review PR, đưa ra phản hồi.

    • Nếu cần sửa đổi, commit thêm vào branch:

    • Sau khi được duyệt, merge PR vào develop.

  7. Xóa branch (sau khi merge):

c. Deploy và Release

  • Khi đủ tính năng trên develop, tạo branch release:

  • Thực hiện kiểm tra cuối (unit test, integration test), sửa lỗi nhỏ nếu cần.

  • Merge release vào maindevelop:

  • Tag phiên bản:

  • Push lên remote:


3. Nguyên tắc đặt tên và viết commit

  • Tên branch: Ngắn gọn, mô tả rõ ràng, theo định dạng type/<mo-ta>. Ví dụ:

    • feature/add-payment-gateway

    • bugfix/fix-header-ui

  • Thông điệp commit:

    • Ngắn gọn, rõ ràng, sử dụng động từ ở thì hiện tại (add, fix, update, remove).

    • Ví dụ:

      • Add user login validation

      • Fix broken API endpoint

    • Nếu cần chi tiết, thêm mô tả sau dòng đầu:

  • Ngôn ngữ: Thống nhất sử dụng tiếng Anh hoặc tiếng Việt tùy quy định công ty.


4. Các công cụ hỗ trợ

  • Nền tảng quản lý Git: GitHub, GitLab, Bitbucket.

  • CI/CD: Tích hợp pipeline để tự động test và deploy (GitHub Actions, GitLab CI, Jenkins).

  • Công cụ review code: Sử dụng tính năng review của GitHub/GitLab, hoặc SonarQube để kiểm tra chất lượng mã.

  • Công cụ quản lý dự án: Jira, Trello để gắn ticket với PR.


5. Những lưu ý quan trọng

  • Pull thường xuyên: Cập nhật branch develop hoặc main để tránh xung đột.

  • Không commit trực tiếp lên main hoặc develop: Luôn làm việc trên branch riêng.

  • Kiểm tra trước khi push:

    • Chạy test (npm test, pytest, v.v.).

    • Đảm bảo mã theo chuẩn code (ESLint, Prettier).

  • Backup trước khi rebase hoặc merge lớn:

  • Xử lý xung đột: Khi merge/rebase, đọc kỹ thông báo và giải quyết xung đột thủ công.

  • Bảo mật:

    • Không commit thông tin nhạy cảm (API key, mật khẩu).

    • Sử dụng .gitignore để bỏ qua các file không cần thiết (.env, node_modules, v.v.).


6. Ví dụ quy trình thực tế

Giả sử bạn được giao task "Thêm chức năng đăng nhập":

  1. Checkout branch develop và pull mã mới nhất:

  2. Tạo branch mới:

  3. Code chức năng đăng nhập, commit thay đổi:

  4. Push branch và tạo PR:

    • Truy cập GitHub/GitLab, tạo PR vào develop.

    • Gán reviewer, thêm mô tả: "Đã thêm đăng nhập với JWT, kiểm tra email/password, cần review API."

  5. Sau khi được duyệt, merge PR và xóa branch:


7. Mẹo nâng cao

  • Sử dụng rebase để giữ lịch sử commit sạch sẽ:

  • Tuy nhiên, cẩn thận khi rebase branch đã push.

  • Cherry-pick để lấy commit cụ thể:

  • Squash commit trước khi merge để gọn gàng:

  • Tự động hóa: Sử dụng pre-commit hook để kiểm tra mã trước khi commit.


8. Tài liệu tham khảo


Last updated