nyximos.log

[GitHub] Branch protection rules로 브랜치 규칙 지정하기 본문

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 버튼이 비활성화 된 것을 확인할 수 있다.