-
Notifications
You must be signed in to change notification settings - Fork 4
🪵 Git 브랜칭 정책
제이미 edited this page Jul 12, 2023
·
5 revisions
- {브랜치 종류}/{이슈 번호}
- 구현이 완료되어도 삭제되지 않는 브랜치
브랜치명 | 설명 |
---|---|
main | • 실제 운영 서버에 배포되는 브랜치 |
develop | • 개발 서버에 배포되는 브랜치 • main에서 분화되는 브랜치 • develop-an 브랜치와 develop-be 브랜치가 병합되는 브랜치 • 안드로이드와 백엔드 병합 시 문제가 발생한 경우 해당 브랜치에서 작업 • 안정화되면 main 브랜치로 squash merge를 하고 tag 추가 |
develop-an | • develop에서 분화되는 브랜치 • 안드로이드 기능 개발 이후 기능들 병합 |
develop-be | • develop에서 분화되는 브랜치 • 백엔드 기능 개발 이후 기능들을 병합하는 브랜치 |
- 구현이 완료되면 삭제되는 브랜치
- feature
- 각 파트별 develop 브랜치(develop-an, develop-an)에서 분화되는 브랜치
- 새로운 기능(분배받은 이슈)을 구현하는 브랜치
- hotfix
- 운영 서버(main 브랜치)에서 문제가 발생한 경우 이를 해결하기 위한 브랜치
- 문제란 긴급하게 수정해야 하는 버그, 긴급하게 기능을 추가 배포해야하는 경우, 긴급하게 성능을 개선해야 하는 경우 등 긴급하게 수행해야 하는 작업을 의미한다.
- main에서 분화되는 브랜치
- main으로 병합
- 운영 서버(main 브랜치)에서 문제가 발생한 경우 이를 해결하기 위한 브랜치
상황 | 대응 |
---|---|
운영 배포용 | main |
베타 배포용 | develop |
핫픽스 대응 | hotfix |
롤백 대응 | • main 브랜치에서 이전 버전으로 롤백 • develop 브랜치에서 버그 수정 • 버그 수정이 모두 완료되면 develop 브랜치에 merge • 배포 준비가 완료되면 develop 브랜치를 main 브랜치로 merge |
- 코드리뷰 방식은 파트별로 정하기
- 제목
- 기능명
- 기능은 기능 명세에 따라서 한글로 작성
- merge 이후에 버그가 발생한 경우 기능 뒤에 수정 붙여서 pr 작성
- 자신의 파트 라벨을 추가
- 내용
- 작업 내용 요약
- 외부 라이브러리 사용 시 언급
- 리뷰 시 헷갈릴 수 있는 부분
- 객관적으로 이해할 수 있을 정도로
- 작업 내용 요약
- 참고 글 기반
- 태그를 제외한 모든 커밋 메세지는 한글로 작성한다.
- 단, 고유명사는 영어로 작성한다.
- 커밋메시지에는
클래스명
과함수명
/메소드명
은 포함하지 않는다.
- 태그는 소문자
- : 뒤에만 space가 있음에 유의
태그 이름 | 설명 | 사용 예시 | 부가 설명 |
---|---|---|---|
feat | 새로운 기능을 추가할 경우 | feat: 로그인 기능 추가 | |
fix | 버그를 고친 경우 | fix: 로그인 오류 해결 | |
design | CSS 등 사용자 UI 디자인 변경 | design: 버튼 색상 변경 | |
!hotfix | 급하게 치명적인 버그를 고쳐야하는 경우 | !hotfix: 로그인 오류 해결 | |
style | 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우 | ||
refactor | 프로덕션 코드 리팩토링 | ||
docs | 문서를 수정한 경우 | docs: 문서 최신화 | |
test | 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X) | test: 테스트 추가 test: 테스트 리팩토링 |
테스트코드가 수정된 경우에만 사용한다. 테스트가 모두 통과하는 상태에서만 커밋을 날린다. |
comment | 필요한 주석 추가 및 변경 | comment: 주석 추가 comment: 주석 변경 |
|
chore | 빌드 태스크 업데이트 (프로덕션 코드 변경 X) | chore: gradle 변경 | |
ci | CI 관련 작업을 수행한 경우 | ||
rename | 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우 | rename: 패키지 이동 rename: 클래스명 변경 |
|
remove | 파일을 삭제하는 작업만 수행한 경우 | remove: ~로 인한 파일 삭제 | |
perf | 성능 개선 | perf: 경로 조회 알고리즘 개선 |
라벨명 | 설명 |
---|---|
all | 안드로이드, 백엔드 전체 해당 시 |
backend | 백엔드와 관련된 이슈나 PR에 사용 |
android | 안드로이드와 관련된 이슈나 PR에 사용 |
feature | 기능 추가 시 |
refactor | 기존 기능에 변경이 없는 구현 변경 시 |
environment | 환경설정 변경 시 |
bug | 오류 발생 시 |
docs | 문서 업데이트 시 |
milestone | 마일스톤 관련 작업 시 |
api | api 명세 관련 작업 시 |
deploy | 배포 관련 작업 시 |
ui | ui 관련 작업 시 |
meeting | 회의 일정 등록 시 |
study | 스터디 관련 작업 시 |