git log

한 줄 요약

커밋 히스토리를 조회

선행 지식

기본 사용법

git log

현재 브랜치의 Commit 히스토리를 최신순으로 보여줍니다.

주요 옵션

옵션설명예시
--oneline한 줄씩 간략히git log --oneline
-n최근 n개만git log -5
--graph그래프로 표시git log --graph
--all모든 브랜치git log --all
-p / --patch변경 내용 포함git log -p
--stat변경 통계git log --stat
--author작성자 필터git log --author="홍길동"
--since / --until날짜 범위git log --since="2024-01-01"

실제 예제

기본 로그

$ git log
 
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0 (HEAD -> main)
Author: 홍길동 <hong@example.com>
Date:   Wed Dec 4 10:30:00 2024 +0900
 
    feat: 로그인 기능 추가
 
commit 9x8y7z6w5v4u3t2s1r0q9p8o7n6m5l4k3j2i1h0g
Author: 홍길동 <hong@example.com>
Date:   Tue Dec 3 15:20:00 2024 +0900
 
    docs: README 업데이트

q 키를 눌러 종료합니다.

한 줄씩 보기 (권장)

$ git log --oneline
 
a1b2c3d (HEAD -> main) feat: 로그인 기능 추가
9x8y7z6 docs: README 업데이트
5w4v3u2 fix: 버그 수정
1t0s9r8 Initial commit

그래프로 보기

$ git log --oneline --graph --all
 
* a1b2c3d (HEAD -> main) Merge branch 'feature'
|\
| * 9x8y7z6 (feature) feat: 새 기능
| * 5w4v3u2 feat: 기능 구현
|/
* 1t0s9r8 Initial commit

최근 N개만 보기

# 최근 5개
git log -5
 
# 최근 3개를 한 줄씩
git log --oneline -3

변경 내용 함께 보기

# 전체 diff
git log -p
 
# 변경 통계
git log --stat

출력 예시 (—stat):

commit a1b2c3d
Author: 홍길동 <hong@example.com>
Date:   Wed Dec 4 10:30:00 2024

    feat: 로그인 기능 추가

 src/login.js  | 45 +++++++++++++++++++++++++++++++++
 src/auth.js   | 12 +++++++--
 2 files changed, 55 insertions(+), 2 deletions(-)

특정 파일의 히스토리

# 특정 파일만
git log -- src/app.js
 
# 특정 폴더만
git log -- src/
 
# 변경 내용과 함께
git log -p -- src/app.js

검색/필터링

# 작성자로 필터
git log --author="홍길동"
 
# 날짜 범위
git log --since="2024-01-01" --until="2024-12-31"
 
# 커밋 메시지 검색
git log --grep="로그인"
 
# 변경 내용 검색 (코드에서 특정 문자열 변경 찾기)
git log -S "functionName"

커밋 상세 보기

# 특정 커밋 상세 정보
git show a1b2c3d
 
# 커밋의 변경 파일만
git show --stat a1b2c3d
 
# 특정 파일의 해당 커밋 시점 내용
git show a1b2c3d:src/app.js

유용한 형식 지정

# 예쁜 형식
git log --pretty=format:"%h - %an, %ar : %s"
# a1b2c3d - 홍길동, 2 hours ago : feat: 로그인 기능 추가
 
# 날짜 포함
git log --pretty=format:"%h %ad | %s" --date=short
# a1b2c3d 2024-12-04 | feat: 로그인 기능 추가
포맷 코드의미
%h짧은 커밋 해시
%H전체 커밋 해시
%an작성자 이름
%ae작성자 이메일
%ad작성 날짜
%ar상대적 날짜
%s커밋 메시지 제목

유용한 별칭 설정

# 예쁜 그래프 로그
git config --global alias.lg "log --oneline --graph --all --decorate"
 
# 사용
git lg

자주 하는 실수

종료 방법을 모름

해결: q 키를 누르면 종료됩니다.

너무 많은 출력

해결: -n 옵션으로 개수 제한

git log -10 --oneline

다른 브랜치의 로그가 안 보임

해결: --all 옵션 사용

git log --oneline --all

관련 명령어

더 알아보기