Danny의 iOS 컨닝페이퍼
article thumbnail

[Swift/ TIL #33] 2023 / 06 / 29

흠, 깃 커밋 내용은 최대한 자세히 쓰기만 하면 되는 줄 알았는데, 완전히 잘못하고 있었습니다.

뭐, 혼자 할 때는 크게 문제없겠지만, 나름의 개발자 사이에서 관습적으로 통용되는 규칙이 있더라고요.

 

나중의 협업을 위해서 간단하게라도 정리를 해보려 합니다.

많은 개발자 분들이 Udacity Git Commit Message Style Guide 를 참고하더라고요.

 

 

Git Commit Message Convention

깃은 코드 형상 관리 도구로써, 파일의 변경사항을 기록하여 추적이 용이하게 만들어주는 도구죠.

 

만약, 코드에 문제가 발생 시, 문제 지점(변경 이력)을 추적하여 이전 버전으로 파일을 복구해줘야 합니다.

그런데 커밋 내용이 규칙적(일관적)이지 않으면, 파일의 추적이 힘들어지겠죠...

 

협업 시, 커밋 컨벤션을 만들어 사용해야 하는 이유입니다.

 

장점으로는 일관된 내용으로 가독성을 높일 수 있고, 효율적인 의사소통(코드 리뷰 및 수정 등)이 가능하죠.

그리고 효율적으로 문제를 추적할 수 있어 유지 보수를 쉽게 할 수 있겠네요.

 

 

기본 메시지 구조 

type: Subject   // 제목
            
body            // 본문
                
footer          // 꼬리말

제목

type과 Subject로 구성돼 있습니다.

(type: 다음에는 공백이 존재합니다.)

 

Commit type

  • Feat: 새로운 기능 추가
  • Fix: 버그 수정
  • Refactor: 코드 리팩토링
  • Perf: 성능 개선
  • Chore: 기타 변경사항(빌드 프로세스 수정, 패키지 매니저 수정, assets 등)
  • Style: 스타일 수정, 줄 바꿈, 공백, 세미콜론 누락 등
  • Docs: 문서 수정(추가, 수정, 삭제, README)
  • Test: 테스트 관련 코드

Subject 규칙

  1. 제목은 50자 미만, 첫 글자 대문자 시작
  2. 과거형이 아닌 명령형으로 작성(ex, Fixed -> Fix)
  3. 마지막 글자는 마침표 및 특수기호 사용금지
  4. 개조식 구문으로 작성(간결하고 요점적으로 서술)
  5. 필요시, 이슈 트래킹 번호 추가 가능 [#이슈 번호]

본문(body) 규칙

  1. 본문은 선택사항이며, 최대한 상세히 작성
  2. 내용은 "어떻게" 보단 "무엇을", "왜" 변경했는지 작성
  3. 각 줄의 길이는 72자 이내로 작성
  4. 글머리 기호도 사용 가능. 하이픈(-), 별표(*)

꼬리말(footer) 규칙

  1. 꼬리말은 선택사항이며, 이슈 트래킹을 위해서 사용된다
  2. "유형: #이슈 번호" 형식으로 작성
  3. 여러 개의 이슈 번호는 쉼표(,)로 구분

Commit 예시

Feat: 검색 API 기능 추가(#12)

현재 위치와 검색한 주소를 기준으로 거리 계산

 - 위,경도 값을 갖고 역지오코딩을 통해 주소값을 구함
 
Close: #1, #12

 

 

Gitmoji

커밋을 할 때, 이모지를 추가해 줘 가독성을 높여줄 수 있습니다.

  • 🎉 (:tada:) - 프로젝트 시작
  • 🎨 (:art:) - 코드의 구조/형태 개선
  • ✨ (:sparkles:) - 새로운 기능
  • ⚡️ (:zap:) - 성능 개선
  • 🚧 (:construction:) 진행 중
  • ♻️ (:recycle:) - 코드 리팩토링
  • 🐛 (:bug:) - 버그 수정
  • 🩹 (:adhesive_bandage:) - 간단한 문제 해결
  • ✏️ (:pencil2:) - 오타 수정
  • 💬 (:speech_balloon:) - 텍스트/리터럴 추가/수정
  • 💩 (:poop:) 개선이 필요한 bad code
  • 🔥 (:fire:) - 코드/파일 제거
  • 💄 (:lipstick:) - UI 및 스타일 파일 추가 또는 업데이트

모든 이모지 관련 용도 및 의미를 확인하고 싶다면, 여기 를 참고해 주세요.

 

 

참고

https://udacity.github.io

https://velog.io/@shin6403

https://yozm.wishket.com

https://overcome-the-limits.tistory.com

https://inpa.tistory.com

 

 

 

 

 

 

반응형
profile

Danny의 iOS 컨닝페이퍼

@Danny's iOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!