GitHub mang tinh thần của Phabricator trở lại với tính năng Stacked PRs
GitHub vừa công bố tính năng Stacked PRs, giúp các nhà phát triển chia nhỏ các thay đổi mã nguồn lớn thành các phần dễ quản lý và xem xét hơn. Quy trình làm việc này gợi nhớ đến công cụ Phabricator, nhằm giải quyết nút thắt trong việc review code trong kỷ nguyên AI.

GitHub đã giới thiệu Stacked PRs, một tính năng mới nhằm giúp các pull request (PR) lớn trở nên dễ dàng xem xét, quản lý và đưa vào quy trình nhanh hơn. Hiện tại, tính năng này đang trong giai đoạn xem trước riêng tư (private preview).
Stacked PRs cho phép một pull request được dựa trên một pull request trước đó để tạo thành một "stack" (ngăn xếp). Mỗi PR trong ngăn xếp có thể được xem xét và hợp nhất (merge) độc lập, miễn là tất cả các PR nằm dưới nó trong ngăn xếp đã được hợp nhất trước đó. Người dùng cũng có thể chọn hợp nhất toàn bộ ngăn xếp cùng một lúc.
Stacked PRs interface on GitHub
Lợi ích của việc chia nhỏ Pull Request
Có một số lợi ích rõ ràng đối với Stacked PRs, điểm nổi bật nhất là nó khuyến khích các pull request nhỏ hơn, từ đó dễ dàng xem xét hơn. Tài liệu của GitHub giải thích rằng: "Mỗi nhánh trong một ngăn xếp nên đại diện cho một đơn vị công việc logic riêng biệt có thể được xem xét độc lập".
Thông thường, việc này rất khó đạt được vì các nhà phát triển thường muốn tiếp tục làm việc trên mã, ngay cả khi mã mới phụ thuộc vào mã cũ chưa được hợp nhất vào nhánh chính. Việc chờ đợi từng phần nhỏ được xem xét và hợp nhất sẽ gây quá nhiều độ trễ, dẫn đến việc họ tiếp tục làm việc trên một nhánh riêng cho đến khi tính năng hoàn tất. Hậu quả là một pull request khổng lồ với nhiều thay đổi mã trên nhiều tệp, gây khó khăn cực lớn cho người review.
Gợi nhớ về Phabricator
Tính năng Stacked PRs mới đối với GitHub, nhưng lại rất quen thuộc với các hệ thống quản lý và xem xét mã khác, nơi nó thường được gọi là "stacked diffs". Một ví dụ nổi tiếng là Differential, được tạo bởi Evan Priestley và Luke Shepard của Facebook vào năm 2007.
"Tôi đã dành rất nhiều thời gian để chờ đợi code review, đây là động lực chính để xây dựng công cụ này," Priestley chia sẻ. Differential sau đó trở thành một phần của bộ công cụ Phabricator và được phát hành dưới dạng mã nguồn mở vào năm 2011. Mặc dù bản mã nguồn mở Phabricator đã ngừng phát triển vào năm 2021, nhưng một bản fork tên là Phorge vẫn được duy trì tích cực.
Jackson Gabbard, một kỹ sư từng làm việc tại Facebook từ năm 2006 đến 2016, đã viết một bài giải thích chi tiết trong đó ông nói rằng: "những người đã làm việc với Phabricator sử dụng quy trình 'stacked diff' thường rất yêu thích nó và tìm kiếm nó ở bất cứ nơi đâu họ đến tiếp theo".
Tích hợp CLI và hỗ trợ AI
Quy trình làm việc khi sử dụng Stacked PRs có sự khác biệt đáng kể so với quy trình truyền thống. PR dưới cùng trong một ngăn xếp thường dựa trên nhánh chính, thay vì một nhánh riêng biệt.
GitHub cũng đã giới thiệu tiện ích mở rộng CLI mới là gh stack để đơn giản hóa việc sử dụng. Tuy nhiên, Sameen Karim của GitHub, người đang phát triển tính năng này, khẳng định rằng "CLI là hoàn toàn tùy chọn, bạn có thể tạo stacked PRs hoàn toàn qua giao diện người dùng (UI)".
Đáng chú ý, GitHub cũng có kế hoạch ứng dụng AI vào tính năng này. "Nút thắt cổ chai hiện nay không còn là viết mã – mà là xem xét mã. Stacked PRs giúp giải quyết vấn đề đó," Karim chia sẻ trên LinkedIn. Ông cũng cho biết stack CLI được thiết kế để sử dụng bởi các tác nhân AI.
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
