Spring/Spring

[GitHub] 협업시 GitHub 커밋 유형별 규칙

JoonYong 2024. 6. 2. 16:23

 

1. 협업 시 유용한 커밋 메시지 유형

협업을 하는 프로젝트에서는 커밋 메시지를 일관되게 작성하는 것이 매우 중요합니다. 일관된 커밋 메시지는 변경 사항을 명확히 이해할 수 있게 하고, 코드 리뷰나 디버깅 시에도 큰 도움이 됩니다. 이번 포스트에서는 협업 시 자주 사용하는 커밋 메시지 유형과 규칙을 설명하겠습니다.

2. 커밋 메시지 유형 요약

유형 설명 예시

feat 새로운 기능 추가 feat: 사용자 로그인 기능 추가
fix 버그 수정 fix: 사용자 프로필 업데이트 오류 수정
docs 문서 변경 docs: API 사용법 문서 추가
style 코드 스타일 변경 style: 코드 포맷팅 수정
refactor 코드 리팩토링 refactor: 사용자 서비스 로직 리팩토링
perf 성능 개선 perf: 데이터베이스 쿼리 성능 개선
test 테스트 추가 및 수정 test: 사용자 서비스 단위 테스트 추가
build 빌드 관련 작업 build: Gradle 버전 업데이트
ci 지속적 통합 설정 ci: GitHub Actions 워크플로우 추가
chore 기타 작업 chore: npm 패키지 업데이트
revert 이전 커밋 되돌리기 revert: "feat: 사용자 로그인 기능 추가"

 


1. feat: 새로운 기능 추가

새로운 기능을 추가할 때 사용하는 커밋 유형입니다. 기능 개발 시 가장 많이 사용되는 커밋 메시지 유형 중 하나입니다.

예시:

feat: 사용자 로그인 기능 추가

2. fix: 버그 수정

버그를 수정할 때 사용하는 커밋 유형입니다. 버그 수정 사항을 명확히 하기 위해 사용하는 것이 좋습니다.

예시:

fix: 사용자 프로필 업데이트 시 발생하는 오류 수정

3. docs: 문서 변경

문서(예: README, API 문서 등)에 변경 사항이 있을 때 사용하는 커밋 유형입니다. 코드 변경 없이 문서만 수정된 경우에 사용합니다.

예시:

docs: API 사용법 문서 추가

4. style: 코드 스타일 변경

코드의 동작에는 영향을 주지 않는 코드 포맷팅, 세미콜론 추가/삭제, 공백 수정 등을 할 때 사용하는 커밋 유형입니다.

예시:

style: 코드 포맷팅 수정

5. refactor: 코드 리팩토링

기능 변경 없이 코드 구조를 개선할 때 사용하는 커밋 유형입니다. 주로 코드의 가독성을 높이거나 유지보수를 쉽게 하기 위해 사용합니다.

예시:

refactor: 사용자 서비스 로직 리팩토링

6. perf: 성능 개선

성능을 향상시키기 위한 코드 변경 시 사용하는 커밋 유형입니다. 주로 속도 향상, 메모리 최적화 등의 작업을 포함합니다.

예시:

perf: 데이터베이스 쿼리 성능 개선

7. test: 테스트 추가 및 수정

테스트 코드를 추가하거나 기존 테스트 코드를 수정할 때 사용하는 커밋 유형입니다. 테스트 커버리지를 높이기 위해 사용됩니다.

예시:

test: 사용자 서비스 단위 테스트 추가

8. build: 빌드 관련 작업

빌드 시스템이나 외부 종속성에 영향을 미치는 변경 사항이 있을 때 사용하는 커밋 유형입니다. 예를 들어, Gradle, Maven, npm 등의 설정을 변경할 때 사용합니다.

예시:

build: Gradle 버전 업데이트

9. ci: 지속적 통합 설정

CI (Continuous Integration) 설정 파일 및 스크립트 변경 시 사용하는 커밋 유형입니다. Jenkins, GitHub Actions, Travis CI 등의 설정 변경을 포함합니다.

예시:

ci: GitHub Actions 워크플로우 추가

10. chore: 기타 작업

그 외 자잘한 변경사항이나 패키지 매니저 설정 등 기타 작업을 커밋할 때 사용하는 유형입니다. 코드 수정 없이 설정 변경이나 빌드 작업 등이 해당됩니다.

예시:

chore: npm 패키지 업데이트

11. revert: 이전 커밋 되돌리기

이전 커밋을 되돌릴 때 사용하는 커밋 유형입니다. revert 커밋은 되돌리는 커밋 메시지를 그대로 포함합니다.

예시:

revert: "feat: 사용자 로그인 기능 추가"