🔥 git show

506자
5분

git은 강력한 버전 관리 도구로, 개발자들이 코드의 변경 사항을 추적하고 관리할 수 있게 도와줍니다. 이번 글에서는 git show 명령어에 대해 알아볼 텐데요. git show는 커밋의 상세 정보를 확인할 때 사용하는 명령어랍니다.

우선 git show의 기본 사용법부터 살펴봅시다.

git show [<옵션>] [<객체>...]
shell

[<객체>...]에는 확인하고 싶은 커밋의 해시값이나 태그, 브랜치 이름 등을 지정할 수 있어요. 옵션을 추가하면 출력 형식을 조정할 수도 있죠.

간단한 예제를 통해 git show가 어떤 결과를 보여주는지 확인해 볼까요?

$ git show HEAD
commit 1ba1d9b62f5637f5634354a4f9dd81d23f2057c0 (HEAD -> feature/signup)
Author: CodingMax <biz.codingmax@gmail.com>
Date:   Fri Mar 29 22:11:29 2024 +0900
 
    Update README.md
 
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5852f44
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+Initial commit
shell

위 예제에서는 HEAD 커밋의 정보를 출력했습니다. 커밋 해시, 작성자, 날짜, 커밋 메시지, 변경된 파일의 diff까지 상세히 보여주네요.

특정 커밋을 지정해서 확인할 수도 있습니다. 커밋 해시값을 사용하면 됩니다.

$ git log --oneline --graph --decorate --all
 
* 1ba1d9b (HEAD -> feature/signup) Update README.md
* 2fa353f Delete README.md
* caf90de (main, feature/login) Update README
| * aec5901 (refs/stash) WIP on (no branch): 070ebac Initial commit
|/|
| * 2443c91 index on (no branch): 070ebac Initial commit
|/
* 070ebac Initial commit
* 713d307 Update hello.txt
* 160ea51 Add message
* 9c5b645 Add hello.txt
* fe5b5e0 (origin/main, origin/HEAD) update README.md
* 103d6c8 (origin/develop) Initial commit
shell
$ git show 2443c91
 
commit 2443c91bd43235310d423dbfbc826eebdce77e9d
Author: CodingMax <biz.codingmax@gmail.com>
Date:   Fri Mar 29 18:28:17 2024 +0900
 
    index on (no branch): 070ebac Initial commit
shell

위와 같이 커밋 해시를 전달하면 해당 커밋의 정보가 출력될 거예요.

파일 이름을 함께 전달하면, 그 커밋에서의 특정 파일 내용을 볼 수 있습니다.

$ git show 713d307 hello.txt
 
commit 713d30794120139e6f55aba91c0e2830ada99ff0
Author: CodingMax <biz.codingmax@gmail.com>
Date:   Fri Mar 29 18:00:54 2024 +0900
 
    Update hello.txt
 
diff --git a/hello.txt b/hello.txt
index c046821..b60b120 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1,2 +1 @@
-Hello, Git
-Hello, Git2
+Hello, Git! Hello, World!
shell

이렇게 하면 713d307 커밋에서의 hello.txt 파일 내용이 보일 거예요.

git show는 태그에 대해서도 적용할 수 있답니다.

$ git show v1.0.0
 
commit 1ba1d9b62f5637f5634354a4f9dd81d23f2057c0 (HEAD -> feature/signup, tag: v1.0.0)
Author: CodingMax <biz.codingmax@gmail.com>
Date:   Fri Mar 29 22:11:29 2024 +0900
 
    Update README.md
 
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5852f44
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+Initial commit
 
shell

위 명령은 v1.0.0 태그가 붙은 커밋의 정보를 보여줄 거예요.

자주 사용되는 옵션으로는 --oneline--stat이 있는데요. --oneline은 각 커밋을 한 줄로 간략하게 표시하고, --stat은 각 커밋의 변경 사항에 대한 통계를 보여준답니다.

$ git show --oneline
1ba1d9b (HEAD -> feature/signup, tag: v1.0.0) Update README.md
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5852f44
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+Initial commit
shell
$ git show --stat
commit 1ba1d9b62f5637f5634354a4f9dd81d23f2057c0 (HEAD -> feature/signup, tag: v1.0.0)
Author: CodingMax <biz.codingmax@gmail.com>
Date:   Fri Mar 29 22:11:29 2024 +0900

    Update README.md

 README.md | 1 +
 1 file changed, 1 insertion(+)
text

이렇게 git show 명령을 활용하면 저장소의 커밋 히스토리를 자유롭게 탐색할 수 있습니다. 커밋의 상세 정보 확인, 특정 파일의 과거 모습 확인 등에 유용하게 사용할 수 있겠죠? git show를 사용하는 연습을 해보면서 커밋 히스토리 탐색에 익숙해지시길 바랍니다.