Xem xét và merge một PR
Hướng dẫn này chỉ cho bạn cách xem xét và hợp nhất một pull request.
Mở bàn làm việc PR
Phần tiêu đề “Mở bàn làm việc PR”- Điều hướng đến Pull requests trong thanh bên
- Chọn một PR từ danh sách
Một PR mở ra dưới dạng bàn làm việc có tab, chứ không phải một trang đơn. Năm tab mở sẵn theo mặc định, theo thứ tự này: Tổng quan, Diff, Kiểm soát mã nguồn, Chat và Hành động (các kiểm tra CI được nhóm theo workflow). Đánh giá — tiến độ của quy trình review, rồi artifact mà nó đã xuất bản kèm thanh phát hiện — cố tình không nằm trong số đó: một PR không có review cho đến khi ai đó yêu cầu, nên Hỏi AI mới mở nó. Một terminal, một trình soạn thảo đơn tệp, một code-server nhúng và một trình duyệt trong ứng dụng mở theo yêu cầu; các tab xem trước triển khai được chèn tự động khi phát hiện URL xem trước trên PR. Bố cục tab của bạn được ghi nhớ theo từng PR.
Tab Tổng quan mang siêu dữ liệu của PR (tác giả, nhánh, nhãn, người được giao, reaction, commit, trạng thái kiểm tra) và hàng hành động: làm mới, Đánh giá, Hợp nhất, mở trong IDE và một menu tràn ⋯.
Đọc diff
Phần tiêu đề “Đọc diff”Mở tab Diff để xem toàn bộ diff của PR cùng lúc, kèm một cây tệp để nhảy giữa các tệp.
- Nút cài đặt trên thanh công cụ của diff chuyển đổi giữa chế độ xem Chia (cạnh nhau) và Gộp, đồng thời bật/tắt ngắt dòng và chữ ghép của phông mã.
- Các tiêu đề hunk
@@được thay bằng các điều khiển Show N lines / Show end of file, giúp chèn ngữ cảnh xung quanh khi bấm vào. - Nhấn
j/kđể di chuyển giữa các tệp,cđể thu gọn hoặc mở rộng tệp đang chọn,tđể đưa thanh bên về cây tệp và⌘Fđể tìm kiếm trên toàn bộ diff (Enter/Shift+Enterđể đi qua các kết quả khớp). - Nhấn
vđể đánh dấu tệp đang chọn là đã xem, và con trỏ chuyển sang tệp tiếp theo. Trên GitHub, trạng thái đã xem được lưu trên máy chủ mã, nên nó theo bạn giữa các máy khách; GitLab và Bitbucket không có API như vậy, nên ở đó trạng thái này chỉ được ghi nhớ trên thiết bị này.
Kéo chuột trong vùng mã sẽ chọn văn bản chính xác đến từng cột, và ⌘C sao chép
mã nguồn thô thay vì các dấu diff đã hiển thị.
Để lại bình luận nội tuyến
Phần tiêu đề “Để lại bình luận nội tuyến”- Bấm vào lề của một dòng mã để mở trình soạn gắn với dòng đó, hoặc dùng nút
+trên tiêu đề tệp để bình luận ở cấp tệp - Viết phản hồi của bạn bằng Markdown
- Gửi
Trên GitHub và GitLab, trình soạn đưa ra hai cách gửi: Thêm bình luận đơn đăng ngay lập tức, còn Bắt đầu review / Thêm vào review xếp bình luận vào một review đang chờ, review này sẽ được gửi đi cùng với Phê duyệt, Yêu cầu thay đổi hoặc Bình luận. Bitbucket không có cơ chế gộp review đang chờ, nên ở đó mọi lần gửi đều đăng ngay. Một bài đăng ngay sẽ hiển thị trạng thái đang chờ cho đến khi máy chủ mã xác nhận, rồi chuyển sang đã đồng bộ. Nếu việc đăng thất bại, luồng sẽ được đánh dấu kèm lỗi và cho phép thử lại.
Chỉ phần thân của review là bản nháp: nó được lưu phía máy chủ theo (chủ sở hữu, repo, số PR) một lát sau khi bạn ngừng gõ, nên nó tồn tại qua lần tải lại và theo bạn giữa máy khách máy tính để bàn và web.
Gửi một review
Phần tiêu đề “Gửi một review”- Nhấn Đánh giá trong hàng hành động ở Tổng quan (nút này bị ẩn trên PR của chính bạn và trên PR đã đóng hoặc đã hợp nhất)
- Viết phần thân review. Bạn có thể đính kèm ảnh, chèn emoji hoặc GIF và chuyển đổi giữa viết và xem trước
- Nhấn Yêu cầu thay đổi, Bình luận hoặc Phê duyệt
Kết luận chính là nút — không có trình chọn kết luận riêng. Sau Phê duyệt hoặc Yêu cầu thay đổi, nút tự đổi nhãn thành Đã phê duyệt hoặc Thay đổi được yêu cầu và phần thân nháp bị xóa. Một kết luận Bình luận giữ nguyên nhãn Đánh giá cho nút.
Hợp nhất
Phần tiêu đề “Hợp nhất”Nút Hợp nhất xuất hiện khi bạn có quyền ghi và PR đang mở và không phải bản nháp. Màu của nút là tín hiệu mức sẵn sàng suy ra từ các phê duyệt bắt buộc và trạng thái kiểm tra (sẵn sàng / đang chờ / bị chặn) — nó chỉ mang tính tham khảo. Nút không bao giờ bị vô hiệu hóa bởi trạng thái review; chính chế độ bảo vệ nhánh của máy chủ mã mới là thứ thực thi các quy tắc.
- Nhấn Hợp nhất để mở bảng hợp nhất
- Chọn một phương thức hợp nhất: squash, merge commit hoặc rebase (mặc định là squash). Bitbucket không có hợp nhất rebase thực sự, nên rebase được ánh xạ sang chiến lược fast-forward của nó và thất bại trên nhánh đã phân kỳ
- Với squash và merge commit, hãy sửa tiêu đề và mô tả commit đã điền sẵn. Rebase không dùng cả hai và ẩn cả hai trường
- Đọc bảng cảnh báo — bảng này nêu các kiểm tra đang thất bại và các review đang chờ, nhưng không chặn bạn
- Nhấn nút hợp nhất trong bảng để xác nhận
Hợp nhất là không thể đảo ngược: thao tác này đẩy commit lên máy chủ mã, nên nó
có một bước xác nhận thay vì một mục hoàn tác. Sau đó bộ nhớ đệm của PR bị vô
hiệu hóa, trạng thái của nó chuyển thành Đã merge và một sự kiện
PullRequestStatusChanged được phát với trạng thái merged. Sự kiện đó giải
phóng worktree tạm thời của “mở trong trình soạn thảo” và khởi động hai quy trình
có sẵn: Stale repository cleanup, quy trình này xóa các worktree cũ và thư mục
hội thoại của PR, và Release notes, quy trình này soạn một mục trong nhật ký
thay đổi.
Giao PR cho các agent đánh giá
Phần tiêu đề “Giao PR cho các agent đánh giá”Menu tràn ⋯ trên tab Tổng quan chứa Hỏi AI, mục này khởi động quy trình
pr_review có sẵn cho PR này. Mục chỉ xuất hiện khi PR còn mở. Xem
Dùng đánh giá hỗ trợ AI để biết
quy trình làm gì và cách xuất bản các phát hiện của nó, và
Tính toán đánh giá để
hiểu mô hình cohort và trục tất định.
Đánh giá một PR bên ngoài
Phần tiêu đề “Đánh giá một PR bên ngoài”Control Center cũng nhập các PR do con người mở bên ngoài ứng dụng. Quy trình review ở trên là như nhau. Các PR bên ngoài được dịch vụ thăm dò PR phát hiện.