지난 포스트에서 AngularJS Commit Convention에 대해 정리했습니다.
이번에는 정리한 내용 중에서 CHANGELOG.md를 직접 생성해보려 합니다.
📌 CHANGELOG.md
생성하기에 앞서 CHANGELOG.md가 뭔지 설명해 보겠습니다.
CHANGELOG.md는 Release 시점에 Commit Message를 <type> 및 <scope> 별로 정리해 놓은
Markdown 형식의 파일입니다.
따라서, 프로젝트의 feature, bug fix, refactor 등으로부터 변경된 변화를 한눈에 파악할 수 있습니다.
📌 간단한 생성 방법
이전 글에서도 소개해드렸는데 Git 명령어를 통해 생성하는 방법입니다.
git log --pretty="- %s" > CHANGELOG.md
위와 같이 명령어를 입력 후 실행하면 --pretty 설정에 맞춰 CHANGELOG.md가 생성됩니다.
%s 는 요약이라는 의미입니다.
아래 이미지는 위 명령어로 생성한 CHANGELOG입니다.
pretty 확장 옵션
아래는 pretty의 확장 옵션 종류 및 설명입니다.
- %H: 커밋 해시
- %h: 축약된 커밋 해시
- %T: 트리 해쉬
- %t: 축약된 트리 해시
- %P: 부모 해시들
- %p: 축약된 부모 해시들
- %an: 저자 이름
- %aN: 저자 이름 (존칭)
- %ae: 저자 이메일
- %aE: 저자 이메일 (존칭)
- %al: 저자 이메일 local-part (the part before the @ sign)
- %aL: 저자 local-part (see %al) respecting .mailmap, see git-shortlog[1] or git-blame[1])
- %ad: 저자 날짜 (format respects --date= option)
- %aD: 저자 날짜, RFC2822 style
- %ar: 저자 날짜, 상대적인
- %at: 저자 날짜, UNIX timestamp
- %ai: 저자 날짜, ISO 8601-like format
- %aI: 저자 날짜, strict ISO 8601 format
- %as: 저자 날짜, short format (YYYY-MM-DD)
- %ah: 저자 날짜, human style (like the --date=human option of git-rev-list[1])
- %cn: 커미터 이름
- %cN: 커미터 이름 (존칭)
- %ce: 커미터 이메일
- %cE: 커미터 이메일 (존칭)
- %cl: 커미터 이메일 local-part (the part before the @ sign)
- %cL: 커미터 local-part (see %cl) 존칭
- %cd: 커미터 날짜 (format respects --date= option)
- %cD: 커미터 날짜, RFC2822 style
- %cr: 커미터 날짜, relative
- %ct: 커미터 날짜, UNIX timestamp
- %ci: 커미터 날짜, ISO 8601-like format
- %cI: 커미터 날짜, strict ISO 8601 format
- %cs: 커미터 날짜, short format (YYYY-MM-DD)
- %ch: 커미터 날짜, human style
- %d: 참조 이름
- %D: " (", ")"처럼 래핑 없는 참조 이름
- %S: 커맨드 라인상에서 제공하는 참조이름 (= git log --source), git log에서만 동작
- %e: 인코딩
- %s: 주제
- %f: 파일 이름에 적합한 정리된 제목 줄
- %b: 바디
- %B: raw body (unwrapped subject and body)
- %N: commit notes
- %GG: 서명된 커밋에 대한 GPG의 raw verification message
- %G?: 좋은 (유효한) 서명을 위해 "G"표시
- %GS: 서명된 커밋의 서명자 이름 표시
- %GK: 서명된 커밋에 서명하는 데 사용되는 키 표시
- %GF: show the fingerprint of the key used to sign a signed commit
- %GP: 서명된 커밋에 서명하는 데 사용된 키의 지문 표시
- %GT: 서명된 커밋에 서명하는 데 사용되는 키의 신뢰 수준을 표시
- %gD: reflog selector
- %gd: shortened reflog selector; %gD와 동일, 하지만 참조 이름 부분은 사람의 가독성을 위해 단축되었습니다. (그래서 refs/heads/master는 master가 됨)
- %gn: 신분 이름을 reflog
- %gN: 신분 이름을 reflog (존칭)
- %ge: 신원 이메일 거부
- %gE: 신원 이메일 거부 (존칭)
- %gs: 주제를 reflog
📌 라이브러리를 활용한 생성 방법
저는 generate-changelog라는 라이브러리를 통해 CHANGELOG.md를 생성해보려고 합니다.
1. Node.js 설치
2. generate-changelog 설치
# 글로벌
npm i generate-changelog -g
# 특정 프로젝트에서만
npm i generate-changelog -D
저는 다른 프로젝트에서도 사용할 수 있도록 Global로 설치했습니다.
3. package.json 생성
해당 라이브러리는 Node.js 기반이기 때문에 package.json이 없으면 정상적으로 실행되지 않습니다.
때문에 Project Root에 package.json을 생성해 주세요.
Intellij IEDA의 경우 New > package.json을 선택하면 생성할 수 있습니다.
4. 생성 명령어 실행
changelog generate
위 명령어를 실행하면 CHANGELOG.md가 생성된 것을 확인할 수 있습니다.
'[Etc.] > Git' 카테고리의 다른 글
[Git] Github Labels 한 번에 적용하는 방법 (0) | 2024.11.27 |
---|---|
[Git] AngularJS Commit Conventions (0) | 2024.10.26 |
Github Action을 이용한 Android CI/CD 구축 with Firebase (0) | 2024.09.01 |