UX·UI - FrontEnd Dev. Story

프론트엔드/정보 용어

[Git/GitHub] Commit Convention / 깃 커밋 컨벤션 사용

클로이겅쥬 2023. 5. 8. 20:04
반응형

 

1. commit 메세지 구조

- 기본 적인 커밋 메시지 구조는 제목,본문,꼬리말 세가지 파트로 나누고, 각 파트는 빈줄을 두어 구분한다.

type : subject

body 

footer

 

 

2. Commit Type Rule

- 타입은 태그와 제목으로 구성되고, 태그는 영어로 쓰되 첫 문자는 대문자로 한다.

 

태그  제목
Feat : 새로운 기능 추가
Fix :  버그 수정
Docs :  문서 수정
Style :  코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
Refactor :  코드 리펙토링
Test :  테스트(테스트 코드 추가, 수정, 삭제, 비즈니스 로직에 변경이 없는 경우)
Chore :  위에 걸리지 않는 기타 변경사항 (빌드 스크립트 수정, assets image, 패키지 매니저 등)
Design :  CSS 등 사용자 UI 디자인 변경
Comment :  필요한 주석 추가 및 변경
Init :  프로젝트 초기 생성
Rename : 파일 혹은 폴더명 수정하거나 옮기는 경우
Remove : 파일을 삭제하는 작업만 수행하는 경우
   

 

3. Subject Rule

-제목은 최대 50글자가 넘지 않도록 하고 마침표 및 특수기호는 사용하지 않는다.

-영문사용 시, 동사원형 사용하고, 첫 글자는 대문자로 표기한다.(과거 시제를 사용하지 않는다.)

- 제목은 개조식 구문으로 작성한다. -> 완전한 서술형 문장이 아니라, 간결하고 요점적인 서술을 의미.

 

 

 

4. Body Rule

  • 본문은 한 줄 당 72자 내로 작성한다.
  • 본문 내용은 양에 구애받지 않고 최대한 상세히 작성한다.
  • 본문 내용은 어떻게 변경했는지 보다 '무엇을', '왜' 변경했는지를 설명한다.

 

 

5. Footer Rule

- 꼬릿말은 다음의 규칙을 지킨다.

1. 유형: #이슈 번호의 형식으로 작성
2. 이슈 트래커 ID를 작성
3. 여러개의 이슈 번호는 ,로 구분
4. 이슈 트래커 유형은 아래와 같다

 

  • 꼬리말은 optional이고 이슈 트래커 ID를 작성한다.
  • 꼬리말은 "유형: #이슈 번호" 형식으로 사용한다.
  • 여러 개의 이슈 번호를 적을 때는 쉼표(,)로 구분한다.
  • 이슈 트래커 유형은 다음 중 하나를 사용한다.
    - Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
    - Resolves: 이슈를 해결했을 때 사용
    - Ref: 참고할 이슈가 있을 때 사용
    - Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
    ex) Fixes: #45 Related to: #34, #23
Issue Tracker 설명
Fixes : 이슈 수정중(아직 해결되지 않은 경우)
Resolves : 이슈를 해결한 경우
Ref : 참조할 이슈가 있을 때 사용
Related to : 해당 커밋에 관련된 이슈 번호(아직 해결되지 않은 경우)

ex) Footer에 Fixes: #1 이라고 작성하고 commit을 할 경우, 자동으로 issue #1과 매칭이 된다.
또한, Resolves: #1으로 이슈를 해결했다고 명시하면 그 이슈는 사라진다.한 번 써보면 감이 온다

 

 

커밋예시

Feat: Add signin, signup
회원가입 기능, 로그인 기능 추가(예시를 위해 간단히 작성)
Resolves: #1

 

첫번째 줄엔 Feat: Add signin, signup
두번째 줄엔 signup과 signin을 어디에 추가했고, 왜 추가했는지에 대한 글을 남긴다.(생략 가능)
세번째 줄엔 issue에 대한 부분은 없지만 이슈1을 해결했다고 가정하자(생략 가능)
wq로 저장하고 나가면 커밋이 자동으로 된다.(vim editor임)
이런식으로 커밋을 하게 되면, 약속대로 signin, signup기능이 추가되었음을 메시지를 통해 직관적으로 알 수 있게 된다.

반응형