git show 사용법

git show 사용법

Git으로 작업하다 보면 “이 커밋에서 뭘 변경했더라?” 하고 궁금해지는 순간이 많습니다. git log로 커밋 목록은 볼 수 있지만 각 커밋의 실제 변경 내용까지 바로 확인하기는 어렵죠.

바로 이럴 때 git show가 유용합니다. git show는 커밋의 메타 정보와 변경 내용을 한 번에 보여주는 명령어인데요. 커밋뿐만 아니라 태그나 브랜치, 특정 파일까지 다양한 Git 객체의 내용을 살펴볼 수 있습니다.

이번 글에서는 git show의 기본 사용법부터 실전에서 유용한 팁까지 함께 알아보겠습니다.

기본 사용법

git show를 인자 없이 실행하면 가장 최근 커밋의 정보를 보여줍니다.

$ git show
commit a80b4e5f987e666cd6473fae575fd0dd34967007 (HEAD -> main)
Author: Dale Seo <dale@example.com>
Date:   Thu Feb 13 10:30:00 2026 +0900

    사용자 프로필 페이지 추가

diff --git a/src/pages/profile.js b/src/pages/profile.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/pages/profile.js
@@ -0,0 +1,25 @@
+export default function Profile() {
+  return <div>프로필 페이지</div>;
+}

출력 내용을 보면 크게 두 부분으로 나뉩니다. 상단에는 커밋 해시, 작성자, 날짜, 커밋 메시지 같은 메타 정보가 나오고 하단에는 변경된 파일의 diff가 표시되죠.

특정 커밋 조회

특정 커밋의 정보를 보려면 커밋 해시를 인자로 넘기면 됩니다.

$ git show a1b2c3d

커밋 해시 전체를 입력할 필요 없이 앞의 7자리 정도만 입력해도 충분합니다. Git이 알아서 찾아주거든요.

HEAD를 기준으로 상대적인 위치로 커밋을 참조할 수도 있습니다.

# 바로 이전 커밋
$ git show HEAD~1

# 3개 전 커밋
$ git show HEAD~3

커밋 메시지만 보기

때로는 diff 없이 커밋 메시지만 빠르게 확인하고 싶을 때가 있습니다. --no-patch 옵션이나 줄여서 -s를 쓰면 diff 출력을 생략할 수 있어요.

$ git show -s
commit a80b4e5f987e666cd6473fae575fd0dd34967007 (HEAD -> main)
Author: Dale Seo <dale@example.com>
Date:   Thu Feb 13 10:30:00 2026 +0900

    사용자 프로필 페이지 추가

--oneline과 함께 쓰면 커밋 해시와 제목만 한 줄로 표시됩니다.

$ git show -s --oneline
a80b4e5 (HEAD -> main) 사용자 프로필 페이지 추가

변경된 파일 목록만 보기

커밋에서 어떤 파일이 변경되었는지만 알고 싶다면 --stat 옵션을 씁니다.

$ git show --stat
commit a80b4e5f987e666cd6473fae575fd0dd34967007 (HEAD -> main)
Author: Dale Seo <dale@example.com>
Date:   Thu Feb 13 10:30:00 2026 +0900

    사용자 프로필 페이지 추가

 src/pages/profile.js    | 25 +++++++++++++++++++++++++
 src/styles/profile.css  | 42 ++++++++++++++++++++++++++++++++++++++++++
 src/components/Nav.jsx  |  3 ++-
 3 files changed, 69 insertions(+), 1 deletion(-)

파일별 추가/삭제 줄 수가 막대그래프 형태로 나와서 변경 규모를 한눈에 볼 수 있어요.

파일 이름만 깔끔하게 보고 싶다면 --name-only 옵션을 쓰면 됩니다.

$ git show --name-only
commit a80b4e5f987e666cd6473fae575fd0dd34967007 (HEAD -> main)
Author: Dale Seo <dale@example.com>
Date:   Thu Feb 13 10:30:00 2026 +0900

    사용자 프로필 페이지 추가

src/pages/profile.js
src/styles/profile.css
src/components/Nav.jsx

파일의 변경 상태(추가, 수정, 삭제)까지 함께 보려면 --name-status를 씁니다.

$ git show --name-status
commit a80b4e5f987e666cd6473fae575fd0dd34967007 (HEAD -> main)
Author: Dale Seo <dale@example.com>
Date:   Thu Feb 13 10:30:00 2026 +0900

    사용자 프로필 페이지 추가

A       src/pages/profile.js
A       src/styles/profile.css
M       src/components/Nav.jsx

A는 새로 추가된 파일, M은 수정된 파일, D는 삭제된 파일을 뜻합니다.

특정 파일의 변경 내용만 보기

커밋에서 변경된 파일이 많으면 전체 diff에서 원하는 부분을 찾기가 번거롭습니다. 이럴 때 -- 뒤에 파일 경로를 지정하면 그 파일의 변경 내용만 볼 수 있어요.

$ git show -- src/pages/profile.js

여러 파일을 지정할 수도 있습니다.

$ git show -- src/pages/profile.js src/components/Nav.jsx

특정 커밋의 특정 파일만 보고 싶다면 커밋 해시와 파일 경로를 함께 넘기면 되고요.

$ git show a1b2c3d -- src/pages/profile.js

특정 파일의 전체 내용 보기

diff가 아니라 특정 커밋 시점의 파일 전체 내용을 보고 싶을 때도 있죠? 커밋:파일경로 형식을 쓰면 됩니다.

$ git show HEAD:src/pages/profile.js
export default function Profile() {
  return <div>프로필 페이지</div>;
}

이 커밋 시점의 파일 내용을 그대로 출력해주는 문법인데요. 과거 특정 시점에 파일이 어떤 상태였는지 확인하거나 이전 버전의 코드를 참고할 때 유용합니다.

다른 브랜치에 있는 파일도 같은 방식으로 볼 수 있어요.

# main 브랜치의 설정 파일 확인
$ git show main:package.json

# 3개 전 커밋의 파일 내용 확인
$ git show HEAD~3:src/app.js

과거 커밋으로 직접 이동하려면 git checkout이나 git switch —detach 명령어를 사용할 수도 있습니다.

출력 형식 지정

--format 옵션으로 커밋 정보의 출력 형식을 자유롭게 바꿀 수 있습니다.

# 커밋 해시와 제목만 표시
$ git show -s --format="%h %s"
a80b4e5 사용자 프로필 페이지 추가

# 작성자와 날짜 포함
$ git show -s --format="%h | %an | %ar | %s"
a80b4e5 | Dale Seo | 2 hours ago | 사용자 프로필 페이지 추가

자주 쓰이는 형식 지정자를 정리하면 다음과 같습니다.

지정자설명
%H전체 커밋 해시
%h짧은 커밋 해시
%an작성자 이름
%ae작성자 이메일
%ar작성 일시 (상대적)
%ad작성 일시 (절대적)
%s커밋 제목 (첫 줄)
%b커밋 본문

태그 조회

git show는 커밋 말고도 태그 정보를 확인할 때도 쓸 수 있습니다.

가벼운 태그(lightweight tag)는 커밋 정보가 바로 표시됩니다.

$ git show v1.0.0
commit a1b2c3d...
Author: Dale Seo <dale@example.com>
Date:   Mon Jan 1 09:00:00 2026 +0900

 번째 릴리스
...

주석이 달린 태그(annotated tag)는 태그 자체의 정보도 함께 나오죠.

$ git show v2.0.0
tag v2.0.0
Tagger: Dale Seo <dale@example.com>
Date:   Sat Feb 1 14:00:00 2026 +0900

 번째 메이저 릴리스
    - 새로운 검색 기능 추가
    - 성능 개선

commit b2c3d4e...
Author: Dale Seo <dale@example.com>
Date:   Sat Feb 1 13:00:00 2026 +0900

    Release v2.0.0
...

태그 메시지만 보고 싶으면 -s 옵션을 쓰면 됩니다.

$ git show -s v2.0.0

병합 커밋 조회

병합 커밋(merge commit)은 부모가 두 개라서 기본적으로 diff가 표시되지 않습니다.

$ git show --stat <병합-커밋>
commit m7e8f9a...
Merge: f4e5d6c a1b2c3d
Author: Dale Seo <dale@example.com>
Date:   Thu Feb 13 11:00:00 2026 +0900

    Merge branch 'feature/search' into main

병합 커밋의 diff를 보려면 -m 옵션을 씁니다. 각 부모 커밋과의 차이를 따로 보여주거든요.

$ git show -m <병합-커밋>

첫 번째 부모(병합을 실행한 브랜치) 기준으로만 보고 싶다면 --first-parent를 같이 쓰면 돼요.

$ git show -m --first-parent <병합-커밋>

병합 커밋에서 각 부모를 참조하는 HEAD^1, HEAD^2 표현식에 대해서는 Git에서 HEAD란? 포스팅에서 자세히 다루고 있으니 참고 바랍니다.

실전 활용

실제 개발하면서 git show를 쓰는 몇 가지 상황을 소개해볼게요.

동료의 최신 커밋을 리뷰할 때 git show로 변경 내용을 빠르게 확인할 수 있어요.

# 원격 브랜치의 최신 커밋 가져오기
$ git fetch origin

# 그 브랜치의 최신 커밋 확인
$ git show origin/feature/payment

프로덕션에 배포된 태그의 내용을 확인할 때도 유용하죠.

# 최근 릴리스 태그의 커밋 확인
$ git show v3.1.0 -s --format="%h %s (%ar)"
c4d5e6f 결제 모듈 버그 수정 (3 days ago)

현재 브랜치와 다른 브랜치의 설정 파일을 비교할 때도 쓸 수 있어요.

# main 브랜치의 설정 파일 내용 확인
$ git show main:config/production.json

# 이전 커밋의 설정 파일과 현재 파일 비교
$ git show HEAD~5:config/production.json > /tmp/old-config.json
$ diff /tmp/old-config.json config/production.json

실수로 파일을 삭제한 후 커밋했더라도 이전 커밋에서 파일 내용을 복구할 수 있어요.

# 삭제 전 커밋에서 파일 내용 확인
$ git show HEAD~1:src/utils/helpers.js

# 파일 복구 (리다이렉션으로 저장)
$ git show HEAD~1:src/utils/helpers.js > src/utils/helpers.js

파일 복원에는 git restore 명령어를 쓰는 게 더 안전합니다.

git log와 비교

git showgit log는 비슷해 보이지만 용도가 다릅니다.

특성git showgit log
기본 대상단일 커밋커밋 히스토리
diff 포함기본 포함기본 미포함
출력 범위지정한 커밋 하나여러 커밋 목록
주요 용도커밋 상세 확인히스토리 탐색

쉽게 말해, 커밋 히스토리를 훑어볼 때는 git log를, 특정 커밋을 자세히 들여다볼 때는 git show를 쓰면 됩니다.

마치며

git show는 Git 객체의 내용을 확인할 때 가장 직관적인 명령어입니다. 자주 쓰이는 옵션을 정리하면 다음과 같아요.

  • git show: 최신 커밋의 메타 정보와 diff 확인
  • git show <커밋>: 특정 커밋의 상세 내용 확인
  • git show -s: 커밋 메시지만 확인 (diff 생략)
  • git show --stat: 변경된 파일 목록과 통계 확인
  • git show <커밋>:<파일>: 특정 시점의 파일 전체 내용 확인
  • git show <태그>: 태그 정보와 관련 커밋 확인

git log로 커밋을 찾고 git show로 자세히 들여다보는 흐름을 익혀두면 코드 리뷰나 디버깅할 때 많이 편해질 겁니다.

더 자세한 내용은 Git 공식 문서를 참고하세요.

This work is licensed under CC BY 4.0 CC BY

Discord