Git 노선도
왕초보를 위한 Git 안내

Git 노선도

Git은 프로젝트의 저장 시점(커밋)을 정거장처럼 쌓아 두는 도구예요. 브랜치는 갈라지는 노선, 병합은 노선이 다시 만나는 환승역입니다. 아래 그림으로 개념을 잡고, 시뮬레이터에서 명령어를 직접 쳐 보세요.

1 · 파일이 지나가는 네 구역

수정 → 담기 → 저장 → 올리기

Git에서 파일은 네 구역을 차례로 지나갑니다. 각 구역 사이를 옮기는 게 바로 git 명령어예요.

작업 폴더

working directory

내가 실제로 파일을 열어 고치는 곳. 아직 Git이 기억하지 않아요.

비유: 책상 위에 펼쳐 둔 원고
git add

스테이징 영역

staging area · index

다음 커밋에 넣을 변경만 골라 담아 두는 대기실.

비유: 택배 상자에 담아 둔 물건
git commit

로컬 저장소

repository · .git

커밋(저장 시점)이 쌓이는 내 컴퓨터 속 기록. 언제든 이 시점으로 돌아갈 수 있어요.

비유: 날짜별로 찍어 둔 사진 앨범
git push

원격 저장소

remote · origin (GitHub 등)

인터넷에 있는 공용 저장소. 동료와 커밋을 주고받는 곳이에요.

비유: 팀이 함께 쓰는 공유 앨범
되돌아오는 방향 → git pull 원격의 새 커밋을 내려받아 합치기 git switch 다른 브랜치의 파일로 작업 폴더 바꾸기 git restore 작업 폴더의 수정 취소
2 · 꼭 알아야 할 다섯 단어

커밋, 브랜치, HEAD, 병합, 충돌

커밋 (commit)

프로젝트 전체를 찍은 사진 한 장. 고유 번호(해시)와 메시지가 붙고, 이전 커밋을 가리켜 줄처럼 이어집니다.

브랜치 (branch)

특정 커밋을 가리키는 이름표. 새 기능을 main과 따로 실험하고 싶을 때 노선을 하나 새로 깝니다.

HEAD

"지금 내가 서 있는 곳" 표시. 보통 현재 브랜치를 가리키고, 새 커밋은 HEAD 바로 뒤에 붙어요.

병합 (merge)

갈라진 두 노선의 작업을 하나로 합치기. 두 부모를 가진 "병합 커밋"이 환승역처럼 생겨요.

충돌 (conflict)

두 브랜치가 같은 파일의 같은 부분을 다르게 고쳤을 때 Git이 판단을 멈추고 사람에게 묻는 상태예요.

3 · 직접 해 보기

Git 시뮬레이터

진짜 Git처럼 터미널에 명령을 입력하면 네 구역과 노선도가 바로 바뀝니다. 왼쪽 미션을 순서대로 따라가 보세요. 아무것도 망가지지 않으니 마음껏 실험해도 돼요.

네 구역의 파일 상태

새 파일(추적 안 됨) 수정됨(아직 add 전) 스테이징됨(커밋 대기) 커밋과 같음 충돌 ● 동그라미 색이 같으면 파일 내용이 같아요

커밋 노선도

터미널

칩을 누르면 입력창에 들어가요 · ↑↓ 이전 명령
4 · 명령어 사전

자주 쓰는 명령어 한눈에

분류명령어하는 일기억법
시작git init현재 폴더를 Git 저장소로 만듭니다 (.git 폴더 생성).앨범 하나 새로 사기
git clone <주소>원격 저장소를 통째로 내려받아 시작합니다.공유 앨범 복사해 오기
기록git status지금 어떤 파일이 수정·스테이징됐는지 확인합니다.모르면 일단 status
git add <파일> / git add .변경을 스테이징 영역에 담습니다. 점(.)은 전부.상자에 담기
git commit -m "메시지"스테이징된 내용으로 커밋(저장 시점)을 만듭니다.사진 찍고 메모 달기
git log --oneline커밋 기록을 한 줄씩 봅니다.앨범 넘겨 보기
되돌리기git restore <파일>작업 폴더의 수정을 버리고 스테이징된 상태로 되돌립니다.원고 지우개
git restore --staged <파일>스테이징만 취소합니다 (파일 수정은 그대로).상자에서 꺼내기
브랜치git branch <이름>현재 커밋에서 새 브랜치를 만듭니다. 이동은 안 해요.새 노선 깔기
git switch <이름>다른 브랜치로 이동합니다. -c를 붙이면 만들면서 이동.노선 갈아타기
git merge <이름>지정한 브랜치를 현재 브랜치로 합칩니다.환승역 만들기
협업git push내 커밋을 원격 저장소에 올립니다.공유 앨범에 올리기
git pull원격의 새 커밋을 내려받아 현재 브랜치에 합칩니다 (fetch + merge).공유 앨범 새 사진 받기

시뮬레이터는 개념 학습용으로 단순화되어 있어요. 실제 Git은 줄 단위로 변경을 비교하지만, 여기서는 파일 단위로 비교합니다.