Hướng dẫn vận hành PR xếp lớp gh-stack
Kỹ năng giúp dùng extension gh-stack của GitHub CLI để chia công việc lớn thành chuỗi nhánh/PR xếp lớp dễ review và quản lý chúng an toàn.
Lập trìnhNâng cao★ 183⑂ 13Điểm AI 9/10Cập nhật lần cuối: 9 thg 10, 2026
Làm được gì
- Tạo và quản lý chuỗi nhánh/PR xếp lớp (stacked PRs) trên trunk bằng
gh stack, mỗi lớp chỉ chứa phần diff của riêng nó. - Cung cấp quy tắc chạy phi tương tác để agent không bị treo: bảng liệt kê cờ bắt buộc (
view --json,submit --auto,merge <đích> --yes,init <nhánh>) và các lệnh chỉ có TUI không được gọi trần (modify,switch). - Hướng dẫn xác định lớp nào "sở hữu" thay đổi, sửa lớp dưới rồi
rebase --upstack, đồng bộ bằngsync/sync --prune, merge theo phạm vi PR hoặc theo số stack (kèm hành vi merge queue). - Mô tả schema JSON của
view --json(trunk, branches[].pr, needsRebase…) và cách khắc phục theo từng mã thoát 0–10 (xung đột rebase, file stack bị lock, lỗi API...). - Chỉ rõ khi nào nên đọc
references/stack-design.md,commands.md,troubleshooting.md.
Phù hợp với ai
- Lập trình viên trong team quen chia một feature lớn thành nhiều PR nhỏ để review nhanh.
- Người để agent (Claude Code) tự chạy lệnh git/gh và từng bị kẹt ở màn hình TUI hoặc prompt nhập tiêu đề.
- Người làm monorepo, nhiều remote, nhiều worktree cần lưu ý
--remotevàremote.pushDefault.
Ví dụ sử dụng
- "Tạo stack auth → api → frontend và mở PR":
gh stack init auth→ commit →gh stack add api→ commit →gh stack submit --autođể mở PR nháp. - Cần sửa lớp giữa:
gh stack down(hoặcgh stack checkout api), commit,gh stack rebase --upstackđể replay toàn bộ lớp trên, rồigh stack topvàgh stack push. - Gộp các PR dưới đã được approve:
gh stack merge 42 --yes --squash(merge PR 42 và mọi PR chưa merge bên dưới, all-or-nothing), sau đógh stack sync --pruneđể dọn nhánh local.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/molefrog/moi/HEAD/.agents/skills/gh-stack/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục .agents/skills/gh-stack từ repo GitHub molefrog/moi vào ~/.claude/skills/gh-stack/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/molefrog/moi.git /tmp/moi && mkdir -p ~/.claude/skills && cp -r /tmp/moi/.agents/skills/gh-stack ~/.claude/skills/gh-stack⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Chuẩn bị: cài Git 2.36+ và GitHub CLI (
gh), kiểm tra đăng nhập bằnggh auth status. - Cài extension:
gh extension install github/gh-stack - Cấu hình khuyến nghị:
git config rerere.enabled true; nếu repo có nhiều remote thì thêmgit config remote.pushDefault origin. - Tải kỹ năng:
git clone https://github.com/molefrog/moi.git /tmp/moi - Copy vào Claude:
mkdir -p ~/.claude/skills && cp -r /tmp/moi/.agents/skills/gh-stack ~/.claude/skills/gh-stack(nhớ copy cả thư mục references). - Kích hoạt: khởi động lại Claude Code và thử yêu cầu "chia việc này thành stacked PRs".
- Kiểm tra: chạy
gh stack view --json; nếu báo lỗi mã 9 nghĩa là repo chưa bật tính năng Stacked PRs.
Xem mã nguồn trên GitHub ↗Giấy phép: NOASSERTION