안녕하세요! 수진입니다:)
개발 공부를 시작하면 가장 먼저 마주하는 벽 중 하나가 바로 Git 이죠. 단순히 '저장' 버튼만 누르면 될 것 같은데.. 왜 굳이 add를 하고 commit을 해야하는지 헷갈렸던 적 없으신가요? 오늘은 Git이 파일을 관리하는 3가지 작업 영역과 그에 따른 파일 상태를 완벽하게 정리해드릴게요~!
1. Git의 3가지 핵심 작업 영역 (Three Sections)
Git을 제대로 이해하려면 먼저 파일이 머무는 '장소'를 알아야 합니다. Git은 프로젝트를 다음 3가지 영역으로 나누어 관리합니다.
- Working Directory (워킹 디렉토리) = 현재 여러분이 실제로 코드를 수정하고 있는 로컬 디렉토리입니다. 파일 탐색기에서 보이는 바로 그 폴더죠!
- Staging Area (스테이징 영역) = 다음 커밋(저장)에 포함할 파일들을 잠시 모아두는 '준비 영역'입니다. 흔히 '인덱스(Index)라고도 불러요.
- .git directory (Repository) = 프로젝트의 메타데이터와 변경 이력이 영구적으로 저장되는 곳입니다. 우리가 '커밋했다'라고 하면 바로 이 영역에서 저장되는 것이죠.
(Repository 생성하는 방법은 지난시간에 설명드렸지요!!!) 혹시 못 보셨다면 https://sujin-note.tistory.com/11
Github 사용법, Repository 생성, github 관련 5가지 질문
안녕하세요! 수진입니다:) 1. 회원가입 https://github.com 이 링크가 정식 링크 입니다.요즘 막 신종 해킹 수법으로 깃허브 사칭? 링크가 많더라고 확인하고 회원가입하세요~사용할 이메일 주소와 비
sujin-note.tistory.com
참고 하세요~!
2. 파일의 생명주기! Git 파일의 3가지 상태
Working Directory (워킹 디렉토리) 내의 파일들은 그 상태에 따라 크게 3가지로 나뉩니다. 이 상태를 정확히 알아야 git status를 쳤을 때 당황하지 않아요! 저도 첨에는 당황했던 경험이 있어요 ㅜㅜ
- Modified(수정됨)
이미 Git에 의해 관리되고 있는 파일 중에서, 마지막 커밋 이후에 수정 사항이 발생한 상태입니다.
쉽게 말해 수진이가 알려주는 꿀팁은 '내 컴퓨터에만 수정본이 있는 상태'예요. 아직 Git 저장소에는 반영되지 않았기 때문에, 이 상태에서 컴퓨터가 꺼지면 수정된 코드는 날아갈 수 있으니 주의해야 합니다! 열심히 했는데 코드 날아가면.... 오마이갓!!김치
- Staged(스테이징됨)
수정된 파일을 다음 커밋에 포함시키겠다고 마킹해 놓은 상태입니다. git add <파일명> 명령어를 실행하면 이 상태가 됩니다.
* 왜 이 단계가 필요할까? 모든 수정 사항을 한꺼번에 커밋하고 싶지 않을 때가 있죠? A 기능 수정본만 먼저 저장하고 싶을 때, A 파일만 add 해서 선별적으로 관리할 수 있게 해주는 아주 유용한 단계입니다.
- Committed / Unmodified (커밋됨 , 수정되지 않음)
데이터가 로컬 저장소(.git 디렉토리)에 안전하게 저장된 상태입니다. git commit을 완료하면, 해당 파일은 다시 수정 사항이 없는 깨끗한 상태(Unmodified)로 돌아가 다음 수정을 기다리게 됩니다.
위의 3가지 상태는 Git 저장소의 관리 대상인 파일들, 즉 상태를 추적(tracked)하는 파일들에 대한 것 입니다. 저장소에서 관리하지 않은 파일들의 상태를 별도로 Untracked라고 합니다. 예를 들어보자면 저장소에 새로운 파일이 추가되면, 이 파일은 Untracked 상태가 됩니다. 기존에 저장소에서 관리하던 파일들의 범주에 속하지 않기 때문에!
Staging Area가 필요한 이유는 무엇일까요?
Git에서 이력을 저장할 때는 스테이징 과정을 거친 후에 커밋을 합니다. 스테이징 과정(git add)! 커밋(git commit)!
변경 사항에 대해서 바로 커밋하는 것이 간결하고 효율적일 것 같은데 스테이징 단계를 거리면서 장점이 많기 때문에 Staging Area가 필요하다는 겁니다!
- 일부 파일만 커밋할 때
- 충돌을 수정할 때
- 커밋을 수정할 때

3. 실무자 소통을 위한 추가 지식으로 Untracked vs Tracked
여기서 잠깐!!! 개발자들과 협업하다 보면 "Tracked"와 "Untracked"라는 말을 자주 듣게 될 거예요.
- Tracked(관리 대상) = 이미 커밋된 적이 있어서 Git이 계속 지켜보고 있는 파일들입니다. 위에서 말한 3가지 상태(Unmodified, Modified, Staged)는 모두 Tracked 파일의 세부 상태입니다.
- Untracked(관리 대상 아님) = 프로젝트 폴더에는 있지만, 한 번도 add 되거나 커밋된 적이 없는 파일입니다. 새로 만든 파일이 주로 이 상태인거죠!
자자 오늘 다뤄봤던 내용들 한 줄 정리 해보자면!!!
Git 작업 흐름은 마치 '편지 보내기'와 같아요.
1. Working Directory = 편지지에 내용을 쓰는 중 (Modified)
2. Staging Area = 다 쓴 편지 봉투에 넣고 풀칠함 (Staged)
3. Repository = 우체통에 편지를 쏙 넣음 (Committed)
한 줄 정리 제가 해드리는데.... 이것만 읽고 위에 글 안 읽는거 아니죠..? ㅜㅜ 나 그럼... 앞으로 한 줄 정리 안 할거야..
제가 KT디지털인재장학생으로 활동하면서 종로구 + 지역사회문제해결을 주제로한 프로젝트를 KT블루보드로 선발된 직원들과 팀원들이랑 해봤는데 진짜 Git이랑 Github는 개발자라면 꼭 필수로 알아야해요!!!
하나 썰을 풀자면... 평상시에 남사친이 Github계정 공유해달라고 했는데 제가.... 깃허브 회원가입은 해뒀는데 잘 사용을 안 했어서... 말을 못해줬어요..ㅜㅜ 싫어서가 아니라... 진짜 몰라서 못 준건데.. ㅎㅎ넵....
결론은 Git이랑 Github 중요해요~ 사실 저도 이렇게 알려드리면서 다시 공부하는 중이랍니다!
글을 마치며 Git은 단순히 코드를 저장하는 도구가 아니라, 팀원들과의 신뢰를 쌓는 기록 장치입니다.
Modified 상태에서 고민하고, Staged 영역에서 검토하며, Committed 로 확신을 남기는 과정이죠.
오늘 정리해 드린 내용이 여러분의 터미널 환경을 조금 더 친숙하게 만들어 주었길 바라며!! 도움이 되었기를 바랍니다!
질문이나 저만의 Git 꿀팁이 궁금하다면 댓글 남겨주세요 :)
오늘 하루도 다들 수고했어요 그럼 이만 안녕~!
'Git & Githube' 카테고리의 다른 글
| git add와 git commit 개발 이력 기록하기 (1) | 2026.05.04 |
|---|---|
| Git 기본 명령어 Setup셋업하기 (0) | 2026.05.03 |
| Github 사용법, Repository 생성, github 관련 5가지 질문 (0) | 2026.05.01 |