Skip to content

총대마켓 Git 전략

채현 edited this page Jul 19, 2024 · 1 revision

Git 전략

브랜치

  • 브랜치명
    • ex) feature/2-kakao
  • 플로우
    • main → develop-AN, develop-BE → feature/이슈번호-기능
    • main → develop-AN, develop-BE → release → main
image

출처: https://blog.jetbrains.com/space/2023/04/18/space-git-flow/

⚠️ 주의사항 : 강제 푸시 금지, 한 Feature를 여러 명이 동시에 작업 금지

버전 관리

  • 버전을 주.부.수 숫자로 하고, 주.부.수 형식에 정식배포 전 버전이나 빌드 메타데이터를 위한 라벨을 덧붙인다.
    1. 기존 버전과 호환되지 않게 API가 바뀌면 “주(主) 버전”을 올리고,
    2. 기존 버전과 호환되면서 새로운 기능을 추가할 때는 “부(部) 버전”을 올리고,
    3. 기존 버전과 호환되면서 버그를 수정한 것이라면 “수(修) 버전”을 올린다.
  • main에 push하는 커밋에 태그를 붙이고, 릴리즈 노트를 생성한다.

이슈

  • 하나의 Issue는 하나의 역할을 담당한다.

    • Issue 단위가 너무 크거나 작지 않게 주의한다.
  • 이슈 템플릿을 활용하여 Issue를 등록한다.

  • 이슈 이름

    ex) ✅ 카카오 로그인

  • Issue 등록 전 다음 항목을 반드시 체크한다.

    • Assignees
    • Labels
    • Milestones

PR

  • 요청 순서
    1. 하나의 Pull Request는 하나의 Issue를 담당한다.
    2. 한명 이상의 리뷰어가 확인하면, Squash Merge 방식으로 병합한다.
      • 병합 커밋 메세지는 Feat: 이슈 이름 (#이슈 번호)이다.
    3. Pull Request 완료 후 관련 브랜치는 삭제한다.
  • PR 제목
    • 이슈 제목의 내용과 동일하게 작성한다.
    • ex) 이슈 → ✅ 카카오 로그인 / pr → feat: 카카오 로그인
  • Pull Request 등록 전 다음 항목을 반드시 체크한다.
    • Assignees
    • Label

커밋 메세지 컨벤션

  1. 일반 커밋 메세지
  • ex) feat: 회원 로그인 기능 테스트
  • 커밋 내용은 명사형으로 작성한다.
  • body는 필요한 경우에만 작성한다.
  1. type 종류

    - feat: 기능과 관련된 (기능에 변화를 ). 새로운 기능 추가. 요구사항 변경으로 기존 기능을 추가, 수정, 삭제
    	- 의존성 갖는 코드를 변경하면 feat
    - fix: 코드  에러, 버그 픽스
    - refactor: 기능과 관련되지 않은 (기능에 변화 주지 않음). 기능 변화 아닌 코드 리팩토링. 파일 추가/이동/이름 변경/삭제
    - docs: 문서 추가/수정. 주석 추가/수정
    - style: 개행, 들여쓰기, 공백..
    - test: 테스트 코드 추가/변경
    - chore: 배포, 빌드 작업, 브랜치 동기화
    - release: 패키지 버전 올릴 
    - init: 프로젝트 초기 설정