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:
Hoặc clone từ remote repository:
Cấu hình thông tin cá nhân:
Kiểm tra cấu hình:
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
Tạo branch mới cho tính năng hoặc lỗi:
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"
Cập nhật branch từ
develop
(để tránh xung đột):Giải quyết xung đột nếu có.
Push branch lên remote:
Tạo Pull Request (PR)/Merge Request:
Truy cập giao diện GitHub/GitLab/Bitbucket, tạo PR từ
feature/<ten-tinh-nang>
sangdevelop
.Đ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ã.
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
.
Xóa branch (sau khi merge):
c. Deploy và Release
Khi đủ tính năng trên
develop
, tạo branchrelease
: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àomain
vàdevelop
: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ặcmain
để tránh xung đột.Không commit trực tiếp lên
main
hoặcdevelop
: 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":
Checkout branch
develop
và pull mã mới nhất:Tạo branch mới:
Code chức năng đăng nhập, commit thay đổi:
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."
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