Commit Convention

EHminShoov2J·2024년 1월 4일
0

Git

목록 보기
2/3
post-thumbnail

01. Udacity Commit Convention

  • Commit Convention 개요
    • Udacity에서 제안하는 Commit Convention은 코드의 이력을 명확하고 일관되게 관리하기 위한 규칙입니다.
    • 이 규칙에 따르면, Commit 메시지는 Type, Subject (필수), Body (선택적), Footer (선택적)로 구성됩니다.

  • Commit Type
    • feat =: 새로운 기능 추가
      feat: Add login functionality
    • fix: 버그 수정
      fix: Correct minor typos in code
    • docs: 문서 변경 사항
      docs: Update README with project setup instructions
    • style: 코드 스타일 관련 변경 코드 변경 없이 포맷팅, 세미콜론 추가 등의 스타일 관련 수정을 포함.
      style: Format code according to PEP8 standards
    • refactor: 코드 리팩토링
      refactor: Restructure existing class hierarchy
    • test: 테스트 추가 또는 리팩토링
      test: Add unit tests for User class
    • chore: 빌드 태스크, 패키지 매니저 설정 등의 변경. 실제 제품 코드 변경 없이, 프로젝트의 유지관리 작업을 포함
      chore: Update package.json dependencies

  • Commit Message 예시
    • Header:
      • Commit Log의 제목으로, 50자 이내, 대문자로 시작하고 마침표 없이 명령문 형태로 작성.
      • 태그와 작업의 대략적 내용을 포함
    • Body
      • 작업에 대한 상세 기록으로, Header와는 한 칸 공백으로 구분하며, 72자를 넘기지 않도록 함.
      • 본문에는 변경의 의도와 이유를 상세히 설명. 여러 단락의 경우, 빈 줄로 구분. 필요에 따라 하이픈(-)을 사용해 불릿 포인트를 추가할 수 있음
    • Footer
      • 관련 Issue의 태그를 포함합니다. '#'과 Issue 번호로 작성합니다.(이슈 트래커 참조)
      • 해당 commit이 merge 되면 자동으로 issue가 종료됨

02. Pre-commit

  • Pre-commit 툴
    • 'git commit' 수행 시 정해진 스크립트들을 자동으로 실행하는 툴입니다.
    • 예: 코드 포맷팅(black, flake8), 유닛 테스트(pytest) 등을 실행합니다.

  • Pre-commit 설치
    • 가장 쉬운 방법은 pip를 사용한 설치입니다.
    • pip install pre-commit 명령어로 설치합니다.

  • Pre-commit Hook 설정
    • '.pre-commit-config.yaml’ 파일 생성이 필요합니다.
    • 기본 hook에는 공백 제거, 파일 검사 등이 포함됩니다.
    • 추가로 black 같은 툴을 통해 코드를 PEP8에 맞게 정리할 수 있습니다.
    • pre-commit install로 hook을 설치합니다.
    • pre-commit autoupdate로 hook을 업데이트합니다.

  • Pre-commit 적용
    • 파일을 commit하면 등록된 hook이 자동으로 실행되며, 필요에 따라 수정 후 다시 commit합니다.

0개의 댓글