Polyrepo(多儲存庫) 讓每個服務各有獨立倉庫。是傳統專案最直觀、最常見的架構
Monorepo(單一儲存庫) 則是把多個服務與共用模組放進同一個 Git 倉庫的專案架構。
當「跨專案共用的功能」越來越多(例如 RBAC、檔案處理、共用工具),Polyrepo 的同步成本會指數上升,這通常是轉向 Monorepo 的分水嶺。
Pants 是一套為 Monorepo 設計的建置系統,能跨子專案統一執行 lint / format / typecheck,並用「resolve」隔離各專案的相依版本。
git-filter-repo + subtree merge 能在整併倉庫的同時保留每個原始 commit 與 git blame,不會把歷史壓成單一 commit。
![]()