본문 바로가기

Android(Kotlin) Study A부터 Z까지 등반

Commit 아카이브

Commit

  • 읽기 어려운 커밋 메시지 예
$ git log --oneline -5 --author cbeams --before "Fri Mar 26 2009"

e5f4b49 Re-adding ConfigurationPostProcessorTests after its brief removal in r814. @Ignore-ing the testCglibClassesAreLoadedJustInTimeForEnhancement() method as it turns out this was one of the culprits in the recent build breakage. The classloader hacking causes subtle downstream effects, breaking unrelated tests. The test method is still useful, but should only be run on a manual basis to ensure CGLIB is not prematurely classloaded, and should not be run as part of the automated build.
2db0f12 fixed two build-breaking issues: + reverted ClassMetadataReadingVisitor to revision 794 + eliminated ConfigurationPostProcessorTests until further investigation determines why it causes downstream tests to fail (such as the seemingly unrelated ClassPathXmlApplicationContextTests)
147709f Tweaks to package-info.java files
22b25e0 Consolidated Util and MutableAnnotationUtils classes into existing AsmUtils
7f96f57 polishing
  • 읽기 쉬운 커밋 메시지 예
$ git log --oneline -5 --author pwebb --before "Sat Aug 30 2014"

5ba3db6 Fix failing CompositePropertySourceTests
84564a0 Rework @PropertySource early parsing logic
e142fd1 Add tests for ImportSelector meta-data
887815f Update docbook dependency and generate epub
ac8326d Polish mockito usage

좋은 git 커밋 메시지를 작성하기 위한 7가지 약속

이하 약속은 커밋 메시지를 English로 작성하는 경우에 최적화되어 있다. 한글 커밋 메시지를 작성하는 경우에는 더 유연하게 적용해도 좋을 것 같음.

  1. 제목과 본문을 한 줄 띄워 분리하기
  2. 제목은 영문 기준 50자 이내로
  3. 제목 첫글자를 대문자로
  4. 제목 끝에 . 금지
  5. 제목은 명령조로
  6. 본문은 영문 기준 72자마다 줄 바꾸기 69자라는 소리도 있음, 줄임 표시로 뜨기 때문
  7. 본문은 어떻게보다 무엇을, 왜에 맞춰 작성하기
  • 각 항목별 가이드

Git 커밋 메시지 작성법 - 이상한모임

Commit Message 구조

type(타입) : title(제목)

body(본문, 생략 가능)

Resolves : #issue, ...(해결한 이슈 , 생략 가능)

See also : #issue, ...(참고 이슈, 생략 가능)

Commit Message Convention

<type>[optional scope]: <description>
[optional body]
[optional footer(s)]

Conventional Commits

Commit Message 타입(type)

1. 커밋 유형 지정

  • FEAT : 새로운 기능의 추가
  • FIX: 버그 수정
  • DOCS: 문서 수정
  • STYLE or UI: 스타일 관련 기능(코드 포맷팅, 세미콜론 누락, 코드 자체의 변경이 없는 경우)
  • REFACTOR: 코드 리펙토링
  • TEST: 테스트 코트, 리펙토링 테스트 코드 추가
  • CHORE: 빌드 업무 수정, 패키지 매니저 수정(ex .gitignore 수정 같은 경우)

Commit Message body

  • 본문으로 헤더로 표현할 수 없는 상세한 내용을 적는다. 헤더로 표현이 가능하다면 생략 가능.

Commit Message footer

  • 바닥글로 어떤 이슈에서 왔는지 같은 참조 정보들을 추가하는 용도로 사용합니다예를 들어 특정 이슈를 참조하려면 close #1233 과 같이 추가하면 된다. close는 이슈를 참조하면서 main브랜치로 푸시될 때 이슈를 닫게 된다.

커밋 템플릿 파일 만들기(commit template file)

  • 커밋 메세지 템플릿을 적용할 git 프로젝트에 진입한 다음, .gitmessage.txt 파일을 생성.
  • 이제 그 파일 내용을 아래와 같이 수정.
# <타입> : <제목> 형식으로 작성하며 제목은 최대 50글자 정도로만 입력
# 제목을 아랫줄에 작성, 제목 끝에 마침표 금지, 무엇을 했는지 명확하게 작성

################
# 본문(추가 설명)을 아랫줄에 작성

################
# 꼬릿말(footer)을 아랫줄에 작성 (관련된 이슈 번호 등 추가)

################
# feature : 새로운 기능 추가
# fix : 버그 수정
# docs : 문서 수정
# test : 테스트 코드 추가
# refactor : 코드 리팩토링
# style : 코드 의미에 영향을 주지 않는 변경사항
# chore : 빌드 부분 혹은 패키지 매니저 수정사항
################

💡 # 으로 된 줄은 모두 주석처리된 곳이며, 비어 있는 첫 번째~세 번째 줄에 각각 작성하면 그것이 커밋 제목, 본문, 꼬릿말이 된다. 위와 같이 파일 내용을 수정하고 저장한다.

 

  • 다음 아래 명령어를 입력. <.gitmessage.txt 경로> 부분에는 위에서 생성한 파일의 경로를 입력. (< > 제외) ``
git config --global commit.template <.gitmessage.txt 경로>
  • 이제부터 git commit 입력 시, 위에서 지정한 템플릿 파일이 자동으로 뜬다. 거기에서 커밋 제목, 본문, 꼬릿말 등을 추가.
  • 이 때 터미널 환경에서 git commit을 입력하면 vi 에디터 환경으로 나옴. 작성할 때에는 키보드 i 키를 누르면 되며, 작성 완료하고 저장하려면 esc 키를 누른 다음 :wq! 를 입력하고 엔터를 누르면 완료.
  • 커밋에 대한 이해? 고찰? On commit messages

 

참고

https://chanhuiseok.github.io/posts/git-4/