본문 바로가기
Programming/Essay

[Essay] 깃 컨벤션 작성 방법

by devpine 2024. 4. 21.
반응형

💻 깃 컨벤션이란

깃 컨벤션은 팀 내에서 일관된 커밋 메시지 작성 규칙을 정하는 것이다.
이를 통해 프로젝트 관리와 협업을 효율적으로 할 수 있어서,
혼자 사이드를 할 때나, 팀 단위로 프로젝트를 관리할 때도 매우 좋은 습관이어서 기록 겸 공유하고자 한다.

🤷‍♀️ 커밋 메시지 규칙이 없다면?

깃 컨벤션이 왜 필요한가? 초보 개발자이거나, 혼자 개발하는 데에 익숙한 사람이라면 아직 필요성을 못 느낄 수 있다. 
그렇다면 만약의 상황을 가정해 보겠다.
프로젝트를 진행하는 중간에 버그 히스토리를 파악하고 싶거나,
복잡한 브랜치들 사이에서 특정 커밋을 찾아 머지를 하고 싶은 상황이 생긴다.
이때, 커밋들이 모두 '수정', '수정2', '최종수정' 이런 식으로 작성되어 있다면 어떻게 하겠는가?
내가 모든 변경사항을 기억하고 있다고 하더라도 시간이 오래 걸리는 일임에 분명하다.

 깃 컨벤션으로 해결

그리고 이 문제는 커밋 메시지를 명확하게 작성하면 해결된다.
커밋 메시지를 명확히 작성한다면, 커밋의 성격과 내용을 쉽게 파악할 수 있어 원하는 커밋을 찾는 데에 용이하다.
그리고 커밋 메시지를 작성할 때 사용할 규칙을 팀원들과 정해서 공유하고 적용하게 된다면, 그게 바로 깃 컨벤션이다.
이를 통해 더욱 효율적으로 소통할 수 있고 서로의 커밋에 대한 신뢰도가 높아진다.
또한 서로 코드리뷰를 할 때 PR에 포함된 커밋을 확인하게 되는데,
이 때 정리가 잘 된 커밋 메시지는 다른 사람의 PR 내용을 더 쉽게 이해할 수 있도록 도와준다. 
그렇다면 이제 커밋 메시지를 어떻게 작성하면 될지 알아보자!

📄 커밋 메시지 구조

깃 컨벤션에서 일반적으로는 다음과 같은 커밋 메시지 구조를 사용한다.
물론 팀의 성격과 성향을 고려하여, 아래 구조 중 일부만 선택적으로 채택할 수 있다.

  1. 유형(Type): 커밋의 목적을 나타내는 태그 (예: feat, fix, docs, style, refactor, test, chore)
  2. 제목(Subject): 커밋의 내용을 간단히 설명하는 문장 (50자 이내, 현재형, 마침표 없음)
  3. 본문(Body): 커밋의 자세한 내용을 설명하는 문단 (선택 사항)
  4. 꼬리말(Footer): 이슈 트래커 ID, 관련 이슈 등을 포함 (선택 사항)

1. 커밋 유형(Type)

커밋의 유형을 작성하면 커밋의 목적을 쉽게 파악할 수 있다. 
아래는 대표적으로 사용하는 타입으로, 상황에 따라 선택하여 사용한다.

feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 작성 및 수정
style: 코드 스타일 변경 (포맷, 세미콜론 등)
refactor: 코드 리팩토링
test: 테스트 코드 추가 및 수정
chore: 빌드 프로세스 또는 보조 도구 변경

 

2. 커밋 제목 (Subject)

제목은 {Type}: {내용}의 형식으로, 마침표 없이 50자 이내로 작성한다.
아래 예시처럼 간략하게 작성한다.

Feat: 스크롤 함수 추가
Fix: 키패드 활성화 시 상단 스크롤되지 않는 이슈 수정

 

3. 커밋 본문 (Body): 선택

본문은 한 줄 당 72자 이내로 변경사항에 대한 What, Why를 상세히 작성하되, 코드를 상세히 적는 것은 지양하는 것이 좋다.
아래 예시처럼 상세히 작성한다. 본문에 적을 상세내용이 없다면 생략해도 좋다.

Feat: 스크롤 함수 추가

스크롤 공통 기능 구현을 위해 커스텀 훅 useScroll 함수 작성
기존 중복되는 스크롤 코드 제거 및 공통 스크롤 훅으로 대체

 

4. 커밋 꼬리말 (Footer): 선택

꼬리말은 제목은 {Type}: {이슈 ID}의 형식으로 작성하며, 이 또한 선택사항이다.
이슈 트래커 유형에는 Fixes(이슈 수정 중), Resolves(해결), Ref(참고), Related to(연관)가 있으며, 아래 예시처럼 사용한다.

Fixes: #12 Related to: #8, #9

 

 깃 커밋 메시지 작성 시 고려사항

깃 커밋 메시지를 작성할 때 아래 내용을 인지하고 고려해서 작성하는 것이 좋다.

  • 일관성 유지: 팀 내에서 합의된 규칙을 지속적으로 따르는 것이 중요
  • 변경 사항 명확화: 커밋 메시지를 통해 변경 내용을 쉽게 파악할 수 있어야 함
  • 이슈 추적 용이: 커밋 메시지에 이슈 트래커 ID를 포함하면 변경 사항과 이슈를 연결 가능
  • 가독성 향상: 간결하고 명확한 커밋 메시지는 프로젝트 관리와 협업에 도움

✍🏻 마치며

 컨벤션을 통해   커밋 메시지 작성 규칙을 정립하면 프로젝트 관리와 협업이 더욱 효율적으로 이루어질  있다. 
이를 통해 프로젝트의 가시성과 유지보수성을 높일  있으므로 
커밋 메시지 구조, 유형 설명, 작성 팁 등을 참고하여 팀에 맞는 깃 컨벤션을 수립하여 협업에 잘 사용할 수 있도록 참고가 되었으면 좋겠다.

반응형

댓글