Skip to content
This repository has been archived by the owner on Jun 19, 2024. It is now read-only.

Commit Convention

JinMu Go edited this page Oct 10, 2023 · 4 revisions

개요

WebWaveMaker(이하 WWM) Webserv의 Commit Convention은 Conventional Commit 스펙을 따릅니다. Conventional Commits 스펙은 명확한 커밋 히스토리를 생성하기 위한 간단한 규칙을 제공합니다. 이 컨벤션은 커밋 메시지에 신규 기능 추가, 문제 수정, 커다란 변화가 있음을 기술함으로써 유의적 버전(Semantic Versioning)과 연계됩니다.

커밋 메시지 구조

커밋 메시지는 다음과 같은 구조를 따릅니다:

[jira issue-key] <타입>(적용 범위(선택 사항)): <설명>

[본문(선택 사항)]

[꼬리말(선택 사항)]

jira issue-key

jira의 issue-key를 대괄호로 묶어서 tag합니다. 이후 type과 공백으로 구분합니다.

[WWM-42] feat: test file add

커밋 타입

  • build: build system 또는 external dependencies에 영향을 미치는 변경사항
  • chore: 빌드, 설정 변경 등 작은 변경사항
  • ci: CI configuration 파일 또는 scripts의 변경사항 (예시: CircleCi, SauceLabs)
  • docs: 문서 변경사항
  • feat: 새로운 기능 추가
  • fix: 버그 수정
  • perf: 성능을 향상시키는 변경사항
  • refactor: 기능 추가나 버그 수정이 아닌 변경 사항
  • revert: 작업 되돌리기
  • style: 스타일 작성 또는 수정
  • test: 누락된 테스트 추가 또는 기존 테스트 수정

커밋 메시지 작성 가이드

  • 커밋 타입은 필수 사항이며 소문자로 작성합니다.
  • 적용 범위는 선택 사항이며 괄호로 감싸서 작성합니다.
  • 설명은 필수 사항이며 변경 사항을 간결하게 요약하며 첫 글자는 소문자, 현재 시제, 명령문으로 작성합니다.
  • 본문은 선택 사항이며 변경 사항의 동기와 변경 효과를 설명합니다. 최소 20자 이상이어야 합니다.
  • 꼬리말은 선택 사항이며 Breaking Changes, deprecations 또는 연관된 이슈, 풀 리퀘스트를 포함합니다.

커밋 메시지 본문

커밋 메시지 본문은 변경 사항에 대한 상세한 내용을 설명하는 곳입니다.

  • 현재 시제와 명령문을 사용하여 작성합니다. (예: "이 기능을 추가합니다" 대신 "이 기능을 추가했습니다.")
  • 변경 사항의 동기를 설명합니다. 왜 이 변경이 필요한지, 어떤 문제를 해결하려는지 등을 기술합니다.
  • 변경 효과를 설명합니다. 이전 동작과 현재 동작의 비교를 통해 변경 사항을 이해할 수 있도록 합니다.

커밋 메시지 꼬리말

커밋 메시지 꼬리말은 선택 사항이지만 유용한 정보를 포함할 수 있는 곳입니다. Breaking Changes 또는 Deprecations를 설명하거나, 해당 커밋과 연관된 이슈나 풀 리퀘스트 번호를 포함할 수 있습니다.

Revert 커밋

revert 커밋은 이전 커밋을 되돌리기 위해 사용됩니다 revert 커밋은 이전 커밋의 영향을 취소하고 이전 상태로 되돌릴 때 사용되며, 이를 통해 코드의 안정성과 일관성을 유지할 수 있습니다.

revert 커밋의 헤더는 다음과 같습니다:

revert: <revert 대상 커밋의 헤더>

revert 커밋 본문에는 다음과 같이 작성합니다:

This reverts commit <revert 대상 커밋의 SHA>

예제

기본 커밋 메시지

feat: 새로운 사용자 등록 기능 추가

새로운 사용자 등록 기능을 추가하였습니다. 사용자는 이제 이메일과 비밀번호로 등록할 수 있습니다.

커밋 메시지 본문 포함

fix: 버그 수정 - 로그인 시간 초과 문제

로그인 시간 초과 문제를 해결했습니다. 이제 세션이 올바르게 유지됩니다.

이 문제는 사용자가 로그인 후 일정 시간 동안 활동하지 않으면 로그아웃되는 버그로, 세션 관리 코드를 수정하여 해결했습니다.

커밋 메시지 꼬리말 포함

feat: 로그인 기능 추가

사용자 로그인 기능을 추가했습니다.

BREAKING CHANGE: 로그인 API 엔드포인트 변경
feat: 로그인 기능 업데이트

로그인 기능을 업데이트했습니다.

BREAKING CHANGE: 로그인 API 엔드포인트 변경

이전에는 /api/login을 사용했지만 이제는 /api/auth/login을 사용해야 합니다.

Closes #123

revert 커밋

revert: feat: 로그인 기능 추가

This reverts commit <이전 커밋의 SHA>

로그인 기능 추가 커밋을 되돌립니다.