gh-domino: Rebase các Pull Request xếp chồng của bạn
(github.com/134130)- Công cụ GitHub CLI extension tự động rebase các stacked PR trên GitHub
- Có những công cụ tuyệt vời như Graphite hay stacked-pr, nhưng rào cản để bắt đầu với chúng quá cao
- Chẳng hạn stacked PR phải được tạo bằng chính công cụ đó thay vì bằng git
- Hoặc có quá nhiều tùy chọn trong file cấu hình cục bộ
- Vì cần một công cụ rebase cực kỳ đơn giản, không cần cấu hình và chỉ dựa vào tính năng PR của GitHub là đủ, nên tác giả đã tự phát triển công cụ này
Ví dụ
Giả sử đang có các stacked PR như sau:
- #102 (main <- stack-1)
- #103 (stack-1 <- stack-2)
- #104 (stack-2 <- stack-3)
Sau khi merge PR #102 vào main, cần rebase lại các PR #103 và #104.
- Ngay cả việc chỉ rebase hai PR thôi cũng đã là một công việc khá phiền phức,
- Trong thực tế, nếu graph trở nên phức tạp do các lý do như có thêm commit được đưa vào #102, thì việc phải nhớ lại các lệnh git để tìm common parent là rất đau đầu
- Ngoài ra, stacked PR không phải là thứ được dùng thường xuyên mà chỉ thỉnh thoảng mới cần, nên lại càng dễ quên
Có thể tự động thực hiện rebase một cách đơn giản bằng các lệnh sau:
gh domino --dry-run
gh domino [--auto]
Có thể xem thêm ví dụ chi tiết trong README.md.
2 bình luận
Ủa, tôi cứ tưởng GitHub tự động làm việc đó chứ?!
Nếu dùng tính năng safe delete branch do GitHub cung cấp thì base branch sẽ được đổi tự động, nhưng với squash merge thì vì không có liên hệ trong
git historynên sẽ rơi vào trạng thái conflict!Ngoài ra, nếu không dùng safe delete mà xóa branch trực tiếp bằng git thì cũng có cái phiền là phải tự đổi base branch nữa!