branch protection
branch protection은 배포에 연결되어 있는 브랜치 등의 함부로 변경되면 안되는 브랜치에 바로 push할 수 없도록 보호해주는 기능이다.
- 레포지토리 상단에 settings 클릭
- 왼쪽 메뉴에서 Branches 클릭
- add rule 클릭

여기에 보호할 브랜치를 입력한다.
여기에 pattern이라고 되어 있는데 예를 들어featur*
라고 작성하면,
feature라는 접두어를 가진 모든 브랜치가 보호된다.
브랜치 보호 해석

- merge 이전에 pull request 가 필요 (pull request 를 통해서만 해당 브랜치로 merge 가능)
- 테스트 결과 (status check) 이상이 없을 시에만 merge 가능
- 코드 리뷰에 달린 conversation 이 모두 해결 (resolve) 된 경우에만 merge 가능
- 커밋이 sign 되어있어야함 (gpg key 를 가지고 commit 한 경우만 허용)
- 분기되지 않고 선형 이력을 가져야 함 (merge commit 자체가 불가능 → 즉, 하나의 이력으로 정리된 경우만 허용)
- 배포가 성공한 경우에만 merge 가능 (특정 브랜치를 deploy 용으로 환경을 만들어놓은 경우에만 의미가 있음)
- 그 누구도 위 보호 옵션을 우회 (bypass) 할 수 없음 (심지어 github repo 관리자도)
소중한 정보 잘 봤습니다!