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
Tạo branch mới cho tính năng hoặc lỗi:
git checkout develop git checkout -b feature/<ten-tinh-nang>
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:
git add . git commit -m "Mô tả ngắn gọn và rõ ràng về thay đổi"
Ví dụ:
git commit -m "Add user authentication for login page"
Cập nhật branch từ
develop
(để tránh xung đột):git checkout develop git pull origin develop git checkout feature/<ten-tinh-nang> git merge develop
Giải quyết xung đột nếu có.
Push branch lên remote:
git push origin feature/<ten-tinh-nang>
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:
git add . git commit -m "Fix review comments" git push origin feature/<ten-tinh-nang>
Sau khi được duyệt, merge PR vào
develop
.
Xóa branch (sau khi merge):
git push origin --delete feature/<ten-tinh-nang> git branch -d feature/<ten-tinh-nang>
c. Deploy và Release
Khi đủ tính năng trên
develop
, tạo branchrelease
:git checkout develop git checkout -b release/v1.0.0
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
:git checkout main git merge release/v1.0.0 git checkout develop git merge release/v1.0.0
Tag phiên bản:
git tag v1.0.0 git push origin v1.0.0
Push lên remote:
git push origin main git push origin develop
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:
git commit -m "Add user login validation - Implement JWT token generation - Add input validation for email and password"
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:
git branch backup-<ten-branch>
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:git checkout develop git pull origin develop
Tạo branch mới:
git checkout -b feature/user-login
Code chức năng đăng nhập, commit thay đổi:
git add . git commit -m "Add user login with JWT"
Push branch và tạo PR:
git push origin feature/user-login
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:
git push origin --delete feature/user-login
7. Mẹo nâng cao
Sử dụng rebase để giữ lịch sử commit sạch sẽ:
git rebase develop
Tuy nhiên, cẩn thận khi rebase branch đã push.
Cherry-pick để lấy commit cụ thể:
git cherry-pick <commit-hash>
Squash commit trước khi merge để gọn gàng:
git rebase -i <commit-hash>
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