git log --format: 커밋 로그 출력 형식 커스터마이징

git log의 --format(--pretty=format:) 옵션과 플레이스홀더를 활용해 원하는 형태로 커밋 히스토리를 출력하는 방법을 정리한다.

· 3 min read · PALDYN Team

지난 글에서 git log의 기본 사용법을 살펴봤다. 이번에는 출력 형식을 자유롭게 제어하는 --format 옵션을 다룬다. 기본 출력이 너무 장황하거나 특정 정보만 뽑아 스크립트에 쓰고 싶을 때 필수적이다.

—format vs —pretty

두 옵션은 동일하게 동작한다.

git log --format="%h %s"
git log --pretty=format:"%h %s"   # 완전히 동일

--format이 더 짧아서 대화형 사용에 편하다.

내장 형식

커스텀 형식 외에도 Git이 제공하는 내장 형식이 있다.

git log --pretty=oneline     # 해시 + 제목
git log --pretty=short       # 해시 + 저자 + 제목
git log --pretty=medium      # 기본값
git log --pretty=full        # Committer 정보까지
git log --pretty=fuller      # 날짜 정보 풍부

플레이스홀더

% 시작 플레이스홀더로 원하는 필드를 조합한다.

git log --format 플레이스홀더

# 해시 + 저자 + 상대 날짜 + 제목
git log --format="%h %an %ar %s"

%ar(상대 날짜)는 “2 hours ago” 형태로 사람이 읽기 쉬운 반면, %ad는 실제 날짜를 출력한다. --date=short 등과 조합할 수도 있다.

git log --format="%h %ad %s" --date=short
# 9a3f1b2 2026-05-10 feat: add user authentication

색상 적용

터미널 출력에 색상을 입히려면 %C(color) / %Creset을 쓴다.

git log --format="%C(yellow)%h%Creset %C(cyan)%ar%Creset %s" --color

지원 색상: red, green, yellow, blue, magenta, cyan, white, bold, dim

실용 예시

실용적인 format 예시

변경 로그 생성

# 마지막 태그 이후 변경 — 릴리스 노트 초안
git log v1.2.0..HEAD --format="- %s (%h)" --no-merges

스크립트용 파싱

# 탭 구분자로 해시·날짜·제목 추출
git log --format="%H%x09%ai%x09%s" > commits.tsv

%x09는 탭 문자(ASCII 0x09)다.

alias로 등록

자주 쓰는 형식은 alias로 저장하면 편하다.

git config --global alias.lg \
  "log --oneline --decorate --graph --all"

git config --global alias.ll \
  "log --format='%C(yellow)%h%Creset %C(cyan)%ar%Creset %an %s'"

%B vs %s + %b

커밋 메시지 전체를 출력하려면 %B를 쓴다.

git log --format="%h%n%B" -1  # 최근 커밋의 전체 메시지

%s는 첫 줄(제목), %b는 본문(두 번째 줄 이후), %B는 둘 다다.


지난 글: git log 기초: 커밋 히스토리 탐색하기

다음 글: git log —graph: 브랜치 분기를 ASCII 그래프로 시각화하기


읽어주셔서 감사합니다. 😊