나만의공간
Git 5회차. Git 로그와 상태 확인 - git status, git log, git diff #5 본문
📜 Git 5회차. Git 로그와 상태 확인 - git status, git log, git diff 완전 정복
Git에서 가장 자주 사용하는 명령어는 단연 로그와 상태 확인입니다. 이 글에서는 git status, git log, git diff의 실제 활용법과 HEAD, 커밋 해시까지 깊이 있게 알려드릴게요 😊
🔍 Git의 핵심은 ‘변화의 기록’
이전 회차에서 Git은 파일을 Working Directory → Staging → Local Repository로 관리한다고 배웠어요. 하지만 이렇게 파일을 저장만 해두면 무슨 의미가 있을까요?
중요한 건 ‘어떤 변경이 있었는가’를 분석하고 추적할 수 있어야 한다는 것!
이를 위해 Git은 매우 강력한 조회 기능을 제공해요. 오늘은 그 중 핵심이 되는 세 가지 명령어를 집중적으로 배워봅시다:
- ✔️ git status
- ✔️ git log
- ✔️ git diff
📌 git status - 현재 상태 확인의 시작
git status는 Git이 현재 추적하고 있는 파일들의 상태를 보여주는 명령어입니다.
✔️ 기본 명령
$ git status
📋 출력 예시
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add ..." to update what will be committed)
modified: index.html
Untracked files:
(use "git add ..." to include in what will be committed)
new_script.js
🧾 주요 용어 정리
- ✔️ Untracked: Git이 추적하지 않는 새 파일
- ✔️ Modified: 기존에 있던 파일이 수정됨
- ✔️ Staged:
git add로 스테이징 된 상태
작업 전마다 습관처럼 git status를 입력하면 실수 확률을 확 줄일 수 있어요 😊
📚 git log - 커밋 히스토리 탐험
git log는 Git에서 만든 모든 커밋의 기록을 시간 순으로 보여줍니다. 이전 회차에서 우리가 열심히 커밋했던 기록들이 바로 여기에 다 저장되어 있어요!
✔️ 기본 명령
$ git log
📋 출력 예시
commit 7c2e3b77213c562f52a24d88e8dfd20a4eaccc32 (HEAD -> main)
Author: Lucas <lucas@example.com>
Date: Tue Jul 9 10:12:45 2025 +0900
feat: 로그인 폼 디자인 개선
commit 1fc087a6cbebf26a3efcd3b76a728d53f41c5730
Author: Lucas <lucas@example.com>
Date: Mon Jul 8 21:17:02 2025 +0900
fix: 로그인 실패 메시지 출력 오류 수정
🔑 구성 요소 설명
- ✔️ commit: 커밋 해시값 (SHA-1)
- ✔️ Author: 커밋한 사람
- ✔️ Date: 커밋 시간
- ✔️ 메시지: 우리가 직접 작성한 커밋 설명
💡 옵션 꿀팁
git log --oneline: 한 줄 요약 출력git log --graph: 브랜치 흐름을 트리로 시각화git log --since="1 week ago": 최근 일주일 로그만 출력
이렇게 로그를 활용하면 과거의 내 작업 이력 추적은 물론, 협업 중인 팀원의 커밋 이력 확인도 간편해집니다 😊
🔄 git diff - 변경 내용 비교
git diff는 커밋 전후 또는 특정 브랜치/파일 간의 실제 변경된 코드 내용을 비교할 수 있게 해줍니다.
✔️ 기본 명령
$ git diff
현재 워킹 디렉토리와 스테이징 영역 사이의 차이를 보여줍니다.
✔️ 스테이징 영역과 마지막 커밋 사이 차이 보기
$ git diff --cached
✔️ 특정 파일만 비교
$ git diff index.html
🧾 출력 예시
diff --git a/index.html b/index.html
index 6bc4b75..37e7f4c 100644
--- a/index.html
+++ b/index.html
@@ -5,6 +5,7 @@
<h1>Welcome</h1>
+<p>New line added</p>
이처럼 +는 추가된 코드, -는 삭제된 코드를 의미합니다. 코드 리뷰 시에도 자주 활용되는 필수 명령어예요 👀
🎯 HEAD란 무엇일까?
HEAD는 현재 작업 중인 커밋을 가리키는 포인터입니다.
- ✔️
HEAD → main: 현재 main 브랜치의 가장 마지막 커밋을 가리킴 - ✔️
HEAD~1: 이전 커밋 - ✔️
HEAD~2: 두 단계 전 커밋
이 구조는 나중에 reset, checkout, revert 등을 사용할 때 매우 중요하게 작용해요!
🔎 HEAD 상태 확인
$ cat .git/HEAD
ref: refs/heads/main
이렇게 보면 HEAD가 어디를 가리키고 있는지 직접 확인할 수도 있답니다 🔍
🔐 커밋 해시란?
Git은 각 커밋을 고유한 SHA-1 해시값으로 식별합니다.
- ✔️ 해시값은 40자리의 헥사 코드
- ✔️ 커밋 메시지, 파일 상태, 작성자, 날짜 등을 바탕으로 자동 생성
예시
commit 1fc087a6cbebf26a3efcd3b76a728d53f41c5730
해시값은 Git 내부에서 ‘주소’처럼 사용됩니다. 특정 커밋으로 이동하거나 비교할 때 필수적으로 사용돼요.
💡 활용 팁
- ✔️
git show [해시]: 해당 커밋의 상세 정보 보기 - ✔️
git checkout [해시]: 해당 커밋 시점으로 이동 - ✔️
git revert [해시]: 해당 커밋을 되돌리는 새 커밋 생성
📌 오늘 배운 내용 요약
- ✔️
git status: 현재 작업 상태를 확인하는 기본 명령어 - ✔️
git log: 커밋 히스토리를 시간순으로 조회 - ✔️
git diff: 변경된 코드 라인을 비교 - ✔️ HEAD: 현재 내가 작업 중인 커밋을 가리키는 포인터
- ✔️ 커밋 해시: Git이 커밋을 고유하게 식별하는 ID
이제 Git의 '기록' 능력을 본격적으로 활용할 준비가 되셨습니다! 😊 다음 회차에선 이력을 되돌리거나 복구하는 강력한 기능들을 배워볼게요.
📎 다음 회차 예고
6회차. GitHub와 원격 저장소 연동하기
✔️ git remote 설정 ✔️ git push, pull로 협업 시작 ✔️ GitHub에 첫 업로드 실습!
#Git #gitstatus #gitlog #gitdiff #HEAD #커밋해시 #Git입문 #Git5회차 #Git기초
'IT > Git' 카테고리의 다른 글
| Git 7회차. 브랜치 이해하기 #7 (1) | 2025.07.12 |
|---|---|
| Git 6회차. GitHub와 연결하기 #6 (4) | 2025.07.11 |
| Git 4회차. Git의 3단계 구조 - Working → Staging → Commit (2) | 2025.07.10 |
| Git 3회차. Git 저장소 만들기(Local Repo) (2) | 2025.07.10 |
| Git 2회차. Git 설치 및 환경 설정 (1) | 2025.07.10 |
