Commit message convention, Push

2024. 10. 17. 19:46Git

Commit

  • git에 데이터 변동 사항을 설명(commit message)과 함께 저장하며 commit을 push하여 기존 데이터와 병합할 수 있다.
  • 전체 파일이나 수정된 일부 파일들을 지정할 수 있다.
  • cmd에서도 가능하고 IntelliJ 등 여러 IDE에서도 git을 지원하는 덕분에 편리하게 commit이 가능하다.

 

Commit log

  • 이전의 commit 히스토리는 log를 통해 확인할 수 있다.
  • origin은 원격 저장소(GitHub)를 나타낸다.
  • HEAD는 현재 checkout한 branch를 통해 최신 commit 또는 현재 작업 공간을 가리키는 포인터이다.(아래 링크의 선생님 말씀 참고)
    https://charles098.tistory.com/24

  • cmd에서도 git log 명령어를 통해 확인할 수 있다.
  • gitHub에서도 공개된 원격 저장소의 commit 기록을 확인할 수 있다.

 

Commit Message Convention

commit을 알아보기 위해 commit message를 "commit test"와 같이 의미 없는 내용으로 작성해봤다.

본격적으로 코드에 기능을 구현하여 commit을 할 때는 message를 의미 있고 일관성 있게 작성해야 추후 독자가 알아보기 편할 것이다.

일관성을 유지하기 위한 개발자 간 무언의 약속, 규약인 Commit Message Convention을 정의하고 작성해보자.

convention의 디테일은 프로젝트마다 정의하기 나름이다.
본 글은 아래 링크를 기반으로 여러 블로그 선생님들을 참고했다.
https://gist.github.com/stephenparish/9941e89d80e2bc58a153

 

Message 구조

  • 대표적으로 subject(제목), body(본문), footer(꼬리말) 세 가지로 나뉘며 공백 행으로 구분한다.
  • 모든 행은 100자 이내로 간결히 작성한다.
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

 

Message Subject_제목(내용 요약)

  • 70자 이내로 작성하여 한눈에 알아볼 수 있도록 한다.
  • 마침표(.)와 특수 기호를 사용하지 않는다.
  • 동사원형을 사용하며 첫 글자도 소문자로 작성한다.

<type>

  • feat (feature) : 새로운 기능 추가
  • fix (bug fix) : 버그 수정
  • docs (documentation) : 문서 수정
  • style (formatting, missing semi colons, …) : 코드 포맷팅, 세미콜론(;) 누락 등 구조 변동이 없는 경우
  • refactor : 코드 리팩토링
  • test (when adding missing tests) : 테스트 코드, 리팩토링 테스트 코드 추가
  • chore (maintain) : 빌드 업무 수정, 패키지 매니저 수정
  • comment : 주석 추가, 수정
  • remove : 파일, 기능 삭제
  • rename : 파일명, 함수명 등 이름 수정
  • init : 프로젝트 초기 생성

<scope>

optional 항목으로, 생략하기도 한다.

변경된 부분을 의미하는데, 계산기 프로그램이라면 (덧셈), (결과 출력) 등이 될 수 있을 것 같다.

프로젝트의 성격에 따라 규정 또는 명세가 필요할 듯하다.

 

Message body_본문

  • 동사원형을 사용하며 첫 글자는 대문자로 작성한다.
  • 변경 내용과 이유 등을 설명한다.
  • 한 행에서 100자 이상은 줄바꿈을 한다.

Message footer_꼬리말

  • <{유형}: #{이슈 번호}> 형식으로 작성한다.
  • 여러 개의 이슈 번호는 쉼표(,)로 구분한다.

이슈 유형

  • Fixes : 해결이 안 되어 아직 수정 중.
  • Resolves : 해결 완료.
  • Ref : 참고 이슈.
  • Related to : 해당 commit에 관련된 이슈로, 아직 해결 안 됨.

 

Push

  • commit은 로컬 저장소에만 반영된다.
  • 원격 저장소(GitHub)에도 commit을 반영하기 위한 작업이 Push이다.
  • IntelliJ 기준으로 Git => push를 누르면 된다.(Ctrl+Shift+K)

 

활용

 

'Git' 카테고리의 다른 글

README.md  (1) 2024.10.18
다른 개발자의 프로젝트 활용하기(fork, clone, branch)  (3) 2024.10.17
Git과 GitHub  (0) 2024.10.17