작업 공간에서 저장소까지의 여정
Git의 세 가지 영역
Git을 이해하는 핵심은 세 가지 영역을 구분하는 것이다.

| 영역 | 설명 | 비유 |
|---|---|---|
| Working Directory | 실제로 파일을 편집하는 공간 | 책상 위 |
| Staging Area | 커밋할 파일을 준비하는 공간 | 택배 박스 |
| Repository | 변경 이력이 저장되는 공간 | 창고 |
저장소 만들기: git init
새 프로젝트에서 Git을 사용하려면 저장소를 초기화해야 한다.
# 프로젝트 폴더 생성 및 이동
mkdir my-project
cd my-project
# Git 저장소 초기화
git init
.git 폴더의 정체
git init을 실행하면 .git이라는 숨김 폴더가 생성된다.
ls -la
# 출력: drwxr-xr-x .git
상태 확인하기: git status
git status는 현재 저장소의 상태를 알려주는 가장 자주 쓰는 명령어이다.
git status
상태별 출력 예시
1. 깨끗한 상태
On branch main
nothing to commit, working tree clean
2. 새 파일이 있을 때 (Untracked)
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.txt
3. Staging Area에 파일이 있을 때
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: hello.txt
무대 위로 올리기: git add
커밋하고 싶은 파일을 Staging Area에 올립니다.
# 특정 파일 추가
git add hello.txt
# 여러 파일 추가
git add file1.txt file2.txt
# 현재 디렉토리의 모든 변경사항 추가
git add .
| 옵션 | 설명 |
|---|---|
. |
현재 디렉토리와 하위의 모든 변경사항을 Staging Area에 추가 |
-A 또는 --all |
저장소 전체의 모든 변경사항(새 파일, 수정, 삭제)을 추가 |
-p 또는 --patch |
변경사항을 하나씩 확인하며 선택적으로 추가 |
왜 Staging Area가 필요할까?

Staging Area의 장점
- 관련 있는 변경사항만 골라서 커밋 가능
- 커밋 전에 무엇이 포함될지 검토 가능
- 실수로 불필요한 파일 포함 방지
역사로 남기기: git commit
Staging Area의 내용을 저장소에 영구 기록한다.
# 메시지와 함께 커밋
git commit -m "로그인 기능 추가"
# 에디터에서 상세 메시지 작성
git commit
# 에디터 없이 바로 메세지를 쓰려면? -m 옵션
git commit -m 'add: 로그인 기능 추가!'
| 옵션 | 설명 |
|---|---|
-m "메시지" |
커밋 메시지를 인라인으로 작성 (에디터 열지 않음) |
-a 또는 --all |
이미 추적 중인 파일의 변경사항을 자동으로 스테이징 후 커밋 |
--amend |
직전 커밋을 수정 (메시지 변경 또는 파일 추가) |
좋은 커밋 메시지 작성법
좋은 예시
✅ feat: 소셜 로그인 기능 추가
✅ fix: 장바구니 수량 음수 입력 방지
✅ docs: API 사용법 문서화
나쁜 예시
❌ 수정함
❌ asdfasdf
❌ 최종
❌ 여러 가지 수정
이력 확인하기: git log
지금까지의 커밋 기록을 확인한다.
# 전체 로그
git log
# 한 줄씩 간단히
git log --oneline
# 그래프로 보기
git log --oneline --graph
| 옵션 | 설명 |
|---|---|
--oneline |
각 커밋을 한 줄로 간결하게 표시 (짧은 해시 + 메시지) |
--graph |
브랜치와 머지 히스토리를 ASCII 그래프로 시각화 |
-n 또는 -숫자 |
최근 n개의 커밋만 표시 (예: git log -3) |
로그 출력 예시
commit 7a8b9c0 (HEAD -> main)
Author: 홍길동 <[gildong@example.com](mailto:gildong@example.com)>
Date: Mon Dec 22 10:30:00 2025 +0900
feat: 로그인 기능 추가
핵심 정리
flowchart TB
subgraph 명령어
INIT[git init] --> STATUS[git status]
STATUS --> ADD[git add]
ADD --> COMMIT[git commit]
COMMIT --> LOG[git log]
end
subgraph 영역
WD[Working Directory]
SA[Staging Area]
REPO[Repository]
end
ADD -.->|파일 이동| SA
COMMIT -.->|기록 저장| REPO
'DevOps > git, github' 카테고리의 다른 글
| git 공부 (0) | 2026.01.14 |
|---|