Programming/Git&GitHub
[GitHub] Branch protection rules로 브랜치 규칙 지정하기
nyximos
2024. 8. 21. 11:26
협업 할 때 Branch 규칙 정립이 안되면 코드 병합시 충돌이 일어날 수도 있고 의도치 않은 변경이 일어 날 수 있다.
GitHub에서는 Branch protection rules를 이용하여 브랜치 규칙을 강제하고 사전에 버그나 오류를 방지할 수 있다.
repository - settings - Code and automation - Branches - Branch protection rules - Add classic branch protection rule
브랜치명 패턴을 지정하고 Protect matching branches에서 필요한 규칙을 선택해준다.
단일 브랜치일 경우 그대로 작성하면 된다.
와일드카드를 사용할 수도 있다.
* : 0개 이상의 문자
ex) feature/*
?는 임의의 한 문자
ex) bugfix/?-release
[abc] : 대괄호 안에 있는 문자 중 하나
ex) release/[0-9]
** : 0개 이상의 디렉토리와 일치하며, 주로 서브디렉토리를 포함하는 브랜치 경로에 사용
ex) **/hotfix
우리 팀은 main, develop, feature 브랜치를 사용하기로 했다.
main
- Require pull request reviews before merging : PR를 통해서만 코드 병합
- Require status checks to pass before merging : 테스트 통과 후 코드 병합
- Do not allow bypassing the above settings : 규칙을 강제하고, 관리자 포함한 모든 사람이 우회할 수 없도록 보장
develop
- Require pull request reviews before merging : 최소한의 코드 리뷰가 필요하도록 설정
- Require approvals (3) : 3명의 승인이 있어야 병합
- Require status checks to pass before merging : 테스트 통과 후 코드 병합
- Require conversation resolution before merging : 코드 리뷰에서 나온 문제 해결 후 병합
- Do not allow bypassing the above settings : 규칙을 강제하고, 관리자 포함한 모든 사람이 우회할 수 없도록 보장
규칙을 저장하면 아래와 같이 조건을 충족하지 못해서 PR 버튼이 비활성화 된 것을 확인할 수 있다.