우리는 보통 문서를 작성할 때 `Ctrl + S`를 눌러 저장합니다. 하지만 개발자의 저장은 조금 다릅니다. 그냥 저장하는 게 아니라 "의미 있는 단위로 역사를 기록"해야 하기 때문입니다.
Git을 처음 접할 때 가장 헷갈리는 `add`, `commit`, `push`의 3단계를 택배 보내는 과정에 비유하여 아주 쉽게 설명해 드립니다. 오늘 이 글을 따라 하면 여러분의 코드가 깃허브(GitHub)에 멋지게 올라갈 것입니다.

1. 개념 잡기: 택배 보내는 3단계 과정
Git으로 파일을 관리하는 과정은 쇼핑몰에서 물건을 포장해 택배를 보내는 것과 똑같습니다.
📦 Git의 3단계 흐름
- 1단계: 작업 공간 (Working Directory)
내 책상 위입니다. 열심히 코드를 짜고 수정하는 공간이죠. 아직 아무런 기록도 안 된 상태입니다. - 2단계: 스테이징 영역 (Staging Area) -
git add
보낼 물건을 골라서 '택배 상자'에 담는 과정입니다. "이 파일들만 기록할 거야"라고 선택하는 단계죠. - 3단계: 로컬 저장소 (Local Repository) -
git commit
상자를 테이프로 밀봉하고 운송장을 붙이는 겁니다. "버전 기록 완료!" 하고 도장을 찍는 순간입니다. 이제 내 컴퓨터에 역사가 저장되었습니다. - +@: 원격 저장소 (Remote Repository) -
git push
마지막으로 포장된 상자를 우체국(깃허브)으로 보내는 것입니다. 다른 사람들도 볼 수 있게 인터넷에 올리는 과정입니다.
2. 실전 1: 내 컴퓨터에 역사 기록하기 (add, commit)
자, 이제 터미널(혹은 VS Code 터미널)을 열고 실습해 봅시다. 프로젝트 폴더로 이동한 후 시작합니다.
① 이 폴더를 Git으로 관리 시작! (초기화)
git init
폴더 안에 숨겨진 `.git` 폴더가 생기며 Git이 감시를 시작합니다. (프로젝트당 처음에 딱 한 번만 하면 됩니다.)
② 파일을 상자에 담기 (Staging)
`index.html` 파일을 만들었다고 가정합시다. 이 파일을 기록 대상에 추가합니다.
git add index.html# 만약 모든 파일을 담고 싶다면: git add .
③ 역사 기록하기 (Commit)
상자를 밀봉하고 메시지를 남깁니다. 커밋 메시지는 구체적일수록 좋습니다.
git commit -m "첫 번째 커밋: 메인 페이지 레이아웃 완성"
축하합니다! 이제 여러분의 컴퓨터에 첫 번째 역사가 안전하게 저장되었습니다.
3. 실전 2: 깃허브(GitHub)에 업로드하기 (remote, push)
내 컴퓨터(로컬)에만 두면 랜섬웨어 걸렸을 때 다 날아갑니다. 안전한 인터넷 저장소인 깃허브(원격)에 올려봅시다.
① 깃허브에 저장소 만들기
GitHub 웹사이트에 가서 'New Repository' 버튼을 눌러 새 저장소를 만듭니다. (ex: `my-first-project`)
② 내 컴퓨터와 깃허브 연결하기 (Remote Add)
깃허브가 알려주는 주소(URL)를 복사해서 내 터미널에 입력합니다. "이 주소를 'origin'이라고 부를게"라는 뜻입니다.
git remote add origin https://github.com/내아이디/my-first-project.git
③ 깃허브로 쏘아 올리기 (Push)
드디어 마지막입니다. 내 로컬 저장소의 내용(master 또는 main 브랜치)을 원격 저장소(origin)로 밀어 올립니다.
git push origin master# 만약 기본 브랜치가 main이라면: git push origin main
깃허브 페이지를 새로고침 해보세요. 여러분의 코드가 올라와 있을 겁니다! 🎉
[Tip] 앞으로의 작업 흐름
이제 연결은 끝났습니다. 앞으로 코드를 수정할 때마다 아래 3단계만 반복하면 됩니다.
- 코드 수정
git add .(상자에 담기)git commit -m "수정 내용"(기록하기)git push origin main(퇴근 전 깃허브에 올리기)
다음 편 예고: "사고 쳤어요, 되돌려 주세요!" Git으로 시간 여행하는 법 (checkout, reset)
코드를 잘못 짰을 때, 과거의 특정 시점으로 되돌아가는 강력한 복구 기능에 대해 알아봅니다.