🙋 Pull Request là gì?
Xin gộp nhánh, để người khác xem và test chạy trước.
1
Hiểu nó là gì
Pull Request (PR) là lời đề nghị “gộp nhánh của tôi vào main”. Nó mở ra một trang để đồng đội đọc từng dòng thay đổi, góp ý, và để CI chạy test — xanh mới bấm merge.
Nói theo đời thường:
Như nộp bản thảo cho biên tập trước khi in. Biên tập đọc, ghi chú bên lề, yêu cầu sửa; duyệt xong mới đưa vào số báo.
Như nộp bản thảo cho biên tập trước khi in. Biên tập đọc, ghi chú bên lề, yêu cầu sửa; duyệt xong mới đưa vào số báo.
⚠ Chỗ ẩn dụ này hỏng
Nộp bản thảo cho biên tập — nhưng Pull Request không phải một tính năng của Git. Nó là của GitHub (GitLab gọi là Merge Request).
Git chỉ biết nhánh và merge. PR là lớp bọc ngoài: một trang web hiện từng dòng thay đổi, chỗ để bình luận, và nơi CI treo kết quả xanh/đỏ. Giá trị thật của PR không nằm ở việc gộp — mà ở chỗ có người thứ hai đọc code trước khi nó vào bản chính.
2
Code trông thế nào
# 1. Làm trên nhánh riêng, push lên git switch -c them-nut-danh-gia git commit -m "Thêm nút đánh giá bài viết" git push -u origin them-nut-danh-gia # 2. Trên GitHub: bấm "Compare & pull request" # → CI tự chạy test trên nhánh này # → đồng đội đọc, góp ý, bạn sửa và push thêm # → xanh + được duyệt → bấm Merge # 3. Về máy git switch main git pull
Vòng đời một PR: nhánh → push → mở PR → test + review → merge → xoá nhánh.
3
Khi nào bạn dùng nó
✓ Dùng khi
- Mọi thay đổi vào main khi làm việc nhóm
- Muốn CI chạy test trước khi code chạm bản chính
- Cần người khác nhìn qua — kể cả khi bạn tự tin
✗ Đừng dùng khi
- Làm một mình một dự án cá nhân nhỏ và không cần CI — push thẳng cũng được
- Mở PR 3.000 dòng — không ai đọc nổi, chia nhỏ ra
Chưa cần biết: quy tắc bảo vệ nhánh, yêu cầu số người duyệt, CODEOWNERS, draft PR.
Để dành tới Mốc 3 — Tự dựng được: Bạn tự đưa được một trang lên mạng, và biết phải sờ vào đâu khi nó không lên.
Dấu hiệu bạn đã cần học nó: Khi có người merge PR chưa ai xem và bạn ước gì GitHub đã chặn lại.
4
Đi đâu tiếp
- CI/CDThứ chạy test trên mỗi PR và hiện dấu tick.
- MergeCái nút cuối cùng của PR.
- BranchKhông có nhánh thì không có PR.