Pull Request (PR) là cách chuẩn để đề xuất, xem xét và gộp thay đổi trong nhóm và trong dự án mã nguồn mở.
Bạn sẽ học được
- Fork, tạo nhánh, commit và mở Pull Request
- Review mã và phản hồi nhận xét
- Dùng Issues để quản lý công việc
- Hiểu quy ước đóng góp mã nguồn mở
Thuật ngữ cần biết
- Pull Request
- Đề nghị gộp nhánh của bạn vào nhánh đích để người khác xem xét.
- Review
- Xem xét thay đổi, bình luận, yêu cầu sửa hoặc chấp nhận.
- Issue
- Phiếu ghi lỗi hoặc ý tưởng.
- Upstream
- Kho gốc mà bạn đã fork.
Quy trình đóng góp
- Fork kho gốc về tài khoản của bạn (nút Fork).
- Clone bản fork về máy:
git clone .... - Tạo nhánh:
git switch -c sua-loi-chinh-ta. - Sửa, commit, rồi
git push -u origin sua-loi-chinh-ta. - Trên GitHub, bấm Compare & pull request, mô tả rõ thay đổi và lý do.
- Chờ review, sửa theo góp ý (push thêm commit vào cùng nhánh), rồi được gộp.
PR tốt trông thế nào
- Nhỏ gọn, mỗi PR một mục đích.
- Tiêu đề rõ: "Sửa lỗi tính tổng khi giỏ hàng trống".
- Mô tả: vấn đề, cách giải quyết, cách kiểm tra, liên kết Issue (
Closes #12). - Đã tự đọc lại và chạy thử.
Issues và quản lý công việc
Dùng Issues để theo dõi việc cần làm. Gắn nhãn (bug, enhancement), người phụ trách và mốc thời gian. Project board kiểu Kanban (To do, Doing, Done) giúp cả nhóm nhìn thấy tiến độ.
Cập nhật bản fork
git remote add upstream https://github.com/chu-so-huu/kho-goc.git
git fetch upstream
git switch main
git merge upstream/mainTình huống: Lần đầu đóng góp mã nguồn mở
Bạn thấy tài liệu của một thư viện sai chính tả. Fork, sửa, mở PR. Đây là cách phổ biến nhất để bắt đầu đóng góp: tìm Issue gắn nhãn good first issue hoặc sửa tài liệu.
Mẹo hay
Đọc CONTRIBUTING.md của dự án trước khi gửi PR để theo đúng quy ước.
Lưu ý
Nhận xét review nhằm vào mã chứ không nhằm vào người. Hãy đón nhận phản hồi và cảm ơn người xem xét.
Thực hành
- Fork một kho thực hành, sửa một dòng README và mở PR.
- Mở Issue trong kho của chính bạn và đóng bằng một commit
Closes #1. - Review PR của một bạn cùng học (hoặc tự xem lại PR của mình).
Tóm tắt bài học
- Quy trình: fork → nhánh → commit → push → PR → review → merge.
- PR nhỏ, rõ, có mô tả.
- Issues và project board giúp quản lý nhóm.