Git은 프로젝트의 저장 시점(커밋)을 정거장처럼 쌓아 두는 도구예요. 브랜치는 갈라지는 노선, 병합은 노선이 다시 만나는 환승역입니다. 아래 그림으로 개념을 잡고, 시뮬레이터에서 명령어를 직접 쳐 보세요.
Git에서 파일은 네 구역을 차례로 지나갑니다. 각 구역 사이를 옮기는 게 바로 git 명령어예요.
내가 실제로 파일을 열어 고치는 곳. 아직 Git이 기억하지 않아요.
다음 커밋에 넣을 변경만 골라 담아 두는 대기실.
커밋(저장 시점)이 쌓이는 내 컴퓨터 속 기록. 언제든 이 시점으로 돌아갈 수 있어요.
인터넷에 있는 공용 저장소. 동료와 커밋을 주고받는 곳이에요.
git pull 원격의 새 커밋을 내려받아 합치기
git switch 다른 브랜치의 파일로 작업 폴더 바꾸기
git restore 작업 폴더의 수정 취소
프로젝트 전체를 찍은 사진 한 장. 고유 번호(해시)와 메시지가 붙고, 이전 커밋을 가리켜 줄처럼 이어집니다.
특정 커밋을 가리키는 이름표. 새 기능을 main과 따로 실험하고 싶을 때 노선을 하나 새로 깝니다.
"지금 내가 서 있는 곳" 표시. 보통 현재 브랜치를 가리키고, 새 커밋은 HEAD 바로 뒤에 붙어요.
갈라진 두 노선의 작업을 하나로 합치기. 두 부모를 가진 "병합 커밋"이 환승역처럼 생겨요.
두 브랜치가 같은 파일의 같은 부분을 다르게 고쳤을 때 Git이 판단을 멈추고 사람에게 묻는 상태예요.
진짜 Git처럼 터미널에 명령을 입력하면 네 구역과 노선도가 바로 바뀝니다. 왼쪽 미션을 순서대로 따라가 보세요. 아무것도 망가지지 않으니 마음껏 실험해도 돼요.
| 분류 | 명령어 | 하는 일 | 기억법 |
|---|---|---|---|
| 시작 | 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은 줄 단위로 변경을 비교하지만, 여기서는 파일 단위로 비교합니다.