GitHub "Stacked Pull Requests"-ийг албан ёсоор танилцууллаа: 2000 мөрийн PR уншдаг тарчлаан эцэс болох уу?
AI туслахууд болон код бичих агентууд өргөн хэрэглээнд нэвтэрснээр бидний код бичих хурд урьд хожид байгаагүй өндөр түвшинд хүрсэн. Гэвч энэ хурдны цаана хөгжүүлэгчдийн багт шинэ том гацаа үүссэн нь Code Review юм.
Нэг том feature хийх бүрд 1500–2000 мөрийн аварга PR (Pull Request) шидэж, хамтран ажиллагсдаа "blind approve" дарахад хүргэх үү? Эсвэл кодоо олон жижиг branch болгон хувааж, орой бүр git rebase хийж, force-push хийх "гимнастик" хийх үү гэсэн хүнд сонголт тулгардаг.
GitHub энэхүү нийтлэг бэрхшээлийг платформын түвшинд шийдвэрлэх Stacked Pull Requests функцийг албан ёсоор Public Preview болгон зарлалаа.
Stacked PR гэж яг юу вэ?
Ихэнх инженерийн системд нэг feature хийхэд логик үе шатууд байдаг:
- Өгөгдлийн сангийн шинэчлэл (DB Migration / Schema)
- Бизнес логик болон сервис код (Core Logic)
- API Endpoint
- Хэрэглэгчийн интерфэйс (Frontend / UI)
Хуучин загварт хөгжүүлэгч эдгээр бүх өөрчлөлтийг нэг PR-д багтаадаг байсан бол Stacked PR нь эдгээрийг хооронд нь уялдаатай, дэд давхарга (layer) болгон гинжилсэн PR-ууд болгон зохион байгуулах боломж олгодог.
Өөрөөр хэлбэл:
PR #1 (DB Schema)branch ньmainруу чиглэнэ.PR #2 (API Logic)branch ньPR #1-ийн branch руу чиглэнэ.PR #3 (UI Layer)branch ньPR #2-ын branch руу чиглэнэ.
Үр дүнд нь шүүмжлэгч (reviewer) бүхэлд нь нэг дор харах биш, давхарга бүрийн 100–200 мөрийн цэвэр өөрчлөлтийг (diff) тус тусад нь төвлөрч хянах боломжтой болно.
Шинэ хэрэгсэл: gh stack ба Visual Stack Map
GitHub зөвхөн веб интерфэйс төдийгүй өдөр тутмын терминалын хэрэглээг хөнгөвчлөхийн тулд өөрсдийн албан ёсны CLI дээр gh stack өргөтгөлийг гаргажээ.
Терминалаас ажиллах хялбар дараалал:
# Шинэ давхарга үүсгэх
gh stack add feat/db-schema
# Кодоо бичээд commit хийнэ...
# Дээр нь дараагийн давхаргыг нэмэх
gh stack add feat/api-layer
# Кодоо бичээд commit хийнэ...
# Бүх stack-ийг GitHub руу нэг дор илгээх
gh stack submit
gh stack submit командыг ажиллуулмагц GitHub веб дээр бүх холбоост PR-ууд автоматаар үүсэж, хоорондын хамаарлыг харуулсан интерактив Stack Map харагдах болно. Reviewer-үүд тухайн бүтцийг шууд нэг цонхноос харан, нэг PR-аас нөгөө рүү шилжин хянах боломжтой.
"Rebase Hell"-ээс ангижрах нь: Автомат шинэчлэлт ба Merge
Өмнө нь ийм гинжин бүтцээр ажиллахад тулгардаг хамгийн том асуудал бол: хэрэв PR #1 дээр review-ийн дагуу засвар орвол түүний дээр суурилсан PR #2, PR #3 салбарууд дээр гар аргаар rebase хийх шаардлага гардаг байв.
GitHub-ийн шинэ бүтэц нь:
- Автомат Sync: Доод давхаргын branch шинэчлэгдэх эсвэл main-тэй мөргөлдөх үед дээд талын PR-уудад өөрчлөлтийг автоматаар түгээж (propagate), дахин rebase хийх ачааллыг арилгадаг.
- One-Click Merge: Бүх давхаргууд зөвшөөрөгдсөн үед stack-ийг бүхэлд нь нэг товшилтоор дарааллын дагуу найдвартай merge хийж болно.
- Branch Protection-ий бүрэн нийцэл: Компанийн CI/CD пайплайн, code coverage, mandatory review дүрэм журам давхарга бүр дээр хэвийн ажиллана.
AI эрин үед хөгжүүлэгчдэд яагаад нэн чухал вэ?
Судалгаагаар хүний тархи 400-аас дээш мөрийн код бүхий өөрчлөлтөөс алдаа олох магадлал эрс буурдаг. AI агентууд нэг минутын дотор хэдэн арван файл өөрчилж чадах ч, кодыг production орчинд нэвтрүүлэх хариуцлагыг эцсийн дүндээ инженер хүн л хүлээнэ.
Stacked PRs нь биднийг дараах 3 давуу талтай болгож байна:
- Хүлээлтгүй хөгжүүлэлт: Эхний хэсгээ review-д илгээгээд хариу ирэхийг хүлээлгүй дараагийн логикоо дээр нь бариад явж болно.
- Review-ийн чанар: Багийнхан чинь асар том "кодын далайд" төөрөхгүй, тодорхой нэг логик хэсэгт чанартай санал өгнө.
- Rollback хийхэд хялбар: Хэрэв UI дээр асуудал үүсвэл бүхэл бүтэн шинэчлэлийг цуцлахгүйгээр зөвхөн тухайн давхаргыг тусгаарлах боломж үүснэ.
Хэрэв та одоогоор томоохон систем эсвэл Monorepo дээр ажиллаж байгаа бол GitHub дээр энэхүү боломжийг тохиргоо шаардахгүйгээр өнөөдрөөс шууд ашиглаж эхлэх боломжтой!
Эх сурвалж: GitHub Changelog & InfoQ Report on GitHub Stacked Pull Requests Public Preview (2026)
Сэтгэгдэл
Ачаалж байна...