기본 적인 커밋 메시지 구조는 제목
,본문
,꼬리말
세가지 파트로 나누어 구분
type : subject
body
footer
ex)
feat : 회원가입 기능 추가
아아디, 비밀번호 중복 확인 기능 추가
HOT-123
feat
: 새로운 기능 추가fix
: 버그 수정docs
: 문서 수정style
: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우refactor
: 코드 리펙토링test
: 테스트 코드, 리펙토링 테스트 코드 추가chore
: 빌드 업무 수정, 패키지 매니저 수정feat/{기능명}
: 기능을 개발할 때 사용하는 브랜치fix/{기능명}
: 개발된 기능에 대한 오류를 수정할 때 사용하는 브랜치refact/{기능명}
: 개발된 기능을 리팩트 할 때 사용하는 브랜치dev
: 개발 브랜치입니다. (feat/fix/refact 브랜치가 완료되면 dev 에 머지)main
실제 서비스가 운영되는 브랜치hotfix
: 긴급 패치가 필요할때 사용하는 브랜치입니다. hotfix에서 수정된 내용은 dev와 main 에 동시에 머지dev
브랜치에서 기능에 대한 브랜치(feature) 생성
> git checkout dev
> git checkout -b feat/signup
기능개발 및 커밋
> git add .
> git commit -m "feat: 회원가입 기능 추가
- 아이디, 비밀번호 중복 확인 기능 추가
HOT-123"
> git push origin feat/signup
PR 작성
PR 승인 및 CI/CD 배포 진행
개발단에서 서비스 확인
main
브랜치에서 기능에 대한 브랜치(hotfix) 생성
> git checkout main
> git pull origin main
> git checkout -b hotfix/signup-error
기능개발 및 커밋
> git add .
> git commit -m "hotfix: 로그인 버그 수정
- 잘못된 로그인 로직 수정
HOT-456"
핫픽스 브랜치 main
에 병합
> git checkout main
> git pull origin main
> git merge hotfix/signup-error
dev
브랜치에도 핫픽스 적용
> git checkout dev
> git pull origin dev
> git merge main
> git push origin dev