개발/github

[github] 브랜치 룰 설정하기

pizzaYami 2024. 4. 16.

개발 프로젝트에서 협업을 할 때 룰이 정해지지 않으면 아주 개판이 됩니다. 여러가지 룰 중에서 브랜치 룰이라는 것이 있는데 repository의 브랜치 룰을 설정하는 겁니다.

 

1. 브랜치 룰 설정하기


repository의 탭에서 Settings -> Branches -> Add rule을 눌러서 브랜치 룰을 추가합니다.

 

 

그러면 아래와 같은 화면이 나오는데

Branch name pattern에 자신이 설정하고 싶은 브랜치명을 넣어주면됩니다.

특정경로의 모든 브랜치에 적용하고 싶다면 *를붙이면 됩니다.

ex) Feat* : Feat 로 시작하는 모든 브랜치에 적용됩니다.

 

그 후에 아래에서 설정하고 싶은 룰을 선택하면 됩니다.

 

 

2.  브랜치 룰 설명


 

1) Require a pull request before merging (**추천)

  • 설명: 모든 커밋은 보호된 브랜치가 아닌 다른 브랜치에서 이루어져야 하며, 병합되기 전에 풀 리퀘스트를 통해 제출되어야 합니다.
  • 목적: 코드 리뷰를 통한 품질 관리와 오류 최소화.

2) Require status checks to pass before merging

  • 설명: 병합하기 전에 지정된 상태 검사가 통과되어야 합니다.
  • 목적: 코드의 안정성과 신뢰성을 보장합니다.

3) Require conversation resolution before merging (**추천)

  • 설명: 풀 리퀘스트를 병합하기 전에 모든 코드에 대한 대화가 해결되어야 합니다.
  • 목적: 모든 피드백이 적절히 처리되었는지 확인합니다.

4) Require signed commits

  • 설명: 매칭되는 브랜치로 푸시된 커밋은 검증된 서명이 있어야 합니다.
  • 목적: 코드의 출처와 무결성을 보증합니다.

5) Require linear history

  • 설명: 매칭되는 브랜치에 병합 커밋을 푸시할 수 없습니다.
  • 목적: 히스토리를 깔끔하고 추적 가능하게 유지합니다.

6) merge queue

  • 설명: 매칭되는 브랜치로의 병합은 병합 대기열을 통해 수행되어야 합니다.
  • 목적: 병합 충돌과 오류를 최소화합니다.

7) Require deployments to succeed before merging

  • 설명: 지정된 환경에 성공적으로 배포되어야 병합이 가능합니다.
  • 목적: 배포 전의 안정성을 보장합니다.

8) Lock branch

  • 설명: 브랜치는 읽기 전용이 됩니다. 사용자는 브랜치에 푸시할 수 없습니다.
  • 목적: 중요한 변경 사항을 보호합니다.

9) Do not allow bypassing the above settings

  • 설명: 위 설정은 관리자와 "branch protections 우회 권한"이 있는 사용자 정의 역할에도 적용됩니다.
  • 목적: 설정의 일관성과 보안을 유지합니다.

10) Restrict who can push to matching branches

  • 설명: 매칭되는 브랜치에 푸시할 수 있는 개인, 팀, 또는 앱을 지정합니다.
  • 목적: 무분별한 변경을 방지합니다.

추가 옵션

  • Allow force pushes: 특정 사용자에게 강제 푸시를 허용합니다.
  • Allow deletions: 사용자가 매칭되는 브랜치를 삭제할 수 있도록 합니다.

댓글