정적 사이트를 만들다 보면 "어제 잘 되던 게 망가졌다", "이 파일을 통째로 날렸다" 같은 일이 반드시 생깁니다. 이런 사고를 막아주는 도구가 바로 Git입니다. Git은 코드의 상태를 시점별로 저장하는 버전관리 시스템이고, 한 번 commit한 내용은 언제든 되돌릴 수 있습니다. 이번 챕터에서는 commit, push, 되돌리기라는 세 가지 핵심 동작만 손에 익히겠습니다.
작업 영역 세 칸을 먼저 이해하기
Git의 모든 헷갈림은 "파일이 지금 어느 칸에 있는가"를 모를 때 생깁니다. Git은 파일을 세 칸으로 나눠서 관리합니다.
- 작업 디렉터리(Working Directory) — 지금 내가 편집하고 있는 실제 파일입니다.
- 스테이지(Staging Area) — 다음 commit에 포함하겠다고 예약해 둔 변경분입니다.
git add로 올립니다. - 저장소(Repository) —
git commit으로 영구 저장된 시점들의 기록입니다.
즉 흐름은 "수정 → git add → git commit" 입니다. add를 거치지 않은 변경은 commit에 들어가지 않는다는 점이 핵심입니다.
# 현재 상태 확인 (가장 자주 쓰는 명령)
git status
# 변경한 파일을 스테이지에 올리기
git add index.html
# 모든 변경을 한꺼번에 올리려면
git add .
# 스테이지에 올린 것을 한 시점으로 저장
git commit -m "메인 페이지 헤더 추가"
push로 원격에 올리기
내 컴퓨터에만 commit하면 다른 사람과 공유되지 않고, 컴퓨터가 고장 나면 사라집니다. GitHub 같은 원격 저장소에 git push로 올려야 백업과 공유가 됩니다.
# 원격 저장소를 처음 연결할 때
git remote add origin https://github.com/내계정/내저장소.git
# 현재 브랜치를 원격 main으로 올리기
git push -u origin main
# 두 번째부터는 그냥
git push
여기서 origin은 원격 저장소의 별명이고, main은 브랜치 이름입니다. -u는 "앞으로 이 브랜치는 origin/main과 짝"이라고 한 번만 기억시키는 옵션입니다.
안전하게 되돌리기
되돌리기에는 여러 방법이 있는데, "무엇을 되돌리는가"에 따라 다릅니다. 초보자가 가장 헷갈리는 부분이라 표로 정리합니다.
| 상황 | 명령 | 효과 |
|---|---|---|
| 아직 add 안 한 파일 수정을 버림 | git restore 파일명 | 마지막 commit 상태로 파일 복구 |
| add는 했지만 commit 전, 스테이지에서 내림 | git restore --staged 파일명 | 스테이지에서만 빼기(수정은 유지) |
| 이미 push한 commit을 안전하게 취소 | git revert 커밋ID | 되돌리는 새 commit을 추가 |
이미 다른 사람과 공유(push)한 기록은git reset으로 지우지 말고git revert로 "취소하는 새 commit"을 만드세요. 공유된 역사를 강제로 바꾸면 동료의 작업이 충돌합니다.
git push --force는 원격의 기록을 통째로 덮어씁니다. 협업 중인 브랜치에 함부로 쓰면 남의 commit이 사라질 수 있으니 평소에는 쓰지 않습니다.정리하면 status로 상태를 확인하고, add → commit으로 시점을 남기고, push로 공유하고, 문제가 생기면 상황에 맞는 되돌리기를 고릅니다. 이 한 사이클을 매일 반복하는 것만으로도 작업이 훨씬 안전해집니다.
이해도 퀴즈
정답 3개 이상 → +180 XP배운 내용을 확인해 보세요. 4문항 중 60% 이상 맞히면 챕터가 완료되고 경험치가 적립됩니다.