브랜치 보호 규칙 (Branch Protection Rules)
브랜치 보호는 한 사람의 실수가 다른 개발자 전체에게 영향을 미치는 걸 막아주는 기능입니다. 보통 main/develop처럼 여러 명이 공유하는 브랜치에 걸어둡니다. Settings → Branches → Add branch protection rule에서 설정합니다.
어떤 브랜치를 보호할지: 이름 패턴
보호 규칙은 브랜치 이름 패턴을 기준으로 적용됩니다. main처럼 정확한 이름을 적어도 되고, feature/*처럼 패턴을 써서 feature/abc, feature/xyz 등 앞에 feature/가 붙은 모든 브랜치를 한 번에 보호할 수도 있습니다. (유닉스 스타일 글롭 패턴 문법을 따릅니다.)
자주 쓰는 설정들
Require a pull request before merging 해당 브랜치로의 직접 push를 막고, 반드시 PR을 거치도록 강제합니다. 리뷰 없이 main에 실수로 push하는 사고를 막아줍니다. 이 옵션을 켜면 하위 옵션도 열립니다.
Require approvals: 승인이 일정 수 이상 있어야 머지 가능Require review from Code Owners: 코드 담당자(CODEOWNERS)의 리뷰가 필요
Require linear history 머지된 커밋이 항상 선형적인 이력을 유지하도록 강제합니다. 즉 해당 브랜치에는 rebase나 squash 방식만 허용되고, Merge Commit 버튼은 사용할 수 없게 됩니다.
Do not allow bypassing the above settings 위 규칙들은 기본적으로 "경고"만 해줄 뿐, 관리자는 무시하고 진행할 수 있습니다. 이 옵션을 켜야 예외 없이 누구도 규칙을 어길 수 없게 됩니다.
출처: Codyssey-B1/B2-2