Trung BìnhGit iconGit

Monorepo với nhiều teams: branching strategy nào phù hợp và làm sao tránh teams block lẫn nhau?

Monorepo không thay đổi branching strategy cơ bản nhưng tăng complexity của conflict và CI.

Recommended: trunk-based + CODEOWNERS + scoped CI

CODEOWNERS (/.github/CODEOWNERS): định nghĩa team nào review phần nào:

/apps/frontend/   @frontend-team
/apps/backend/    @backend-team
/packages/shared/ @core-team

PR chỉ require approval từ owner của file được thay đổi → teams không block nhau.

Scoped CI: chỉ chạy test của packages bị ảnh hưởng — dùng nx affected, turborepo --filter, hoặc changesets. Đừng chạy full test suite cho mọi PR.

Branch per team: mỗi team có team/frontend/feature-x namespace riêng, merge vào main thường xuyên.

Pitfall: shared packages (/packages/shared) là bottleneck — thay đổi đây require tất cả teams test. Giải pháp: versioned internal packages với changelogs, không mutate shared package mà không notify.

Xem toàn bộ Git cùng filter theo level & chủ đề con.

Mở danh sách Git