바이브 코딩을 위한 Git & GitHub
부록

부록 A — Git 명령어 빠른 참고표

이 책의 본문은 GitHub Desktop과 VSCode Source Control만으로 완주할 수 있게 설계되어 있습니다. 터미널은 필수가 아닙니다. 다만 GUI로 해결되지 않는 상황이 가끔 있습니다. .env 파일을 추적에서 제거할 때, 특정 커밋만 되돌릴 때, 원격 저장소 주소를 갈아끼울 때가 그렇습니다. 이 부록은 그럴 때만 펼쳐 보면 되는 참고표입니다.

A.1 기본 워크플로 명령어

한 프로젝트를 시작해서 GitHub에 올리기까지 가장 자주 쓰는 명령어입니다. 오른쪽 열은 GitHub Desktop에서 같은 일을 하는 방법입니다.

명령어하는 일GitHub Desktop 대응
git init현재 폴더를 Git 저장소로 만든다File → New Repository
git status현재 변경된 파일 목록을 본다Changes 탭 자동 표시
git add .모든 변경 파일을 스테이징한다Changes 탭 체크박스 전체 선택
git add 파일명특정 파일만 스테이징한다Changes 탭 파일별 체크박스
git commit -m "메시지"스테이징된 변경을 커밋한다Summary 입력 후 Commit to main
git push로컬 커밋을 GitHub에 올린다Push origin 버튼
git pullGitHub의 최신 커밋을 내려받는다Fetch origin → Pull origin
git clone URL원격 저장소를 내 컴퓨터로 복제한다File → Clone Repository

A.2 브랜치 명령어

메인 라인을 지키면서 새 기능을 실험할 때 쓰는 명령어입니다. 9장의 박혜원 선생님 협업 흐름과 같은 도구들입니다.

명령어하는 일GitHub Desktop 대응
git branch모든 브랜치 목록을 본다Current Branch 드롭다운
git branch 이름새 브랜치를 만든다 (이동은 안 함)New Branch → 이름 입력
git checkout -b 이름새 브랜치를 만들고 바로 이동한다New Branch (기본 동작)
git checkout 이름기존 브랜치로 이동한다Current Branch 드롭다운에서 선택
git merge 이름지정한 브랜치를 현재 브랜치에 합친다Branch → Merge into Current Branch
git branch -d 이름병합이 끝난 브랜치를 안전하게 삭제한다Branch → Delete

A.3 되돌리기 명령어

실수를 되돌리는 명령어입니다. 위쪽일수록 안전하고, 아래쪽일수록 파괴적입니다. 아래쪽 두 줄은 주의해서 씁니다.

명령어하는 일안전도
git restore 파일명수정 중이던 파일을 마지막 커밋 상태로 되돌린다안전
git restore --staged 파일명스테이징을 취소한다 (변경은 유지)안전
git commit --amend직전 커밋 메시지 또는 내용을 수정한다보통 (아직 푸시 안 했을 때만)
git revert 커밋해시특정 커밋을 "취소하는 새 커밋"을 만든다안전 (히스토리 보존)
git reset --soft HEAD~1직전 커밋을 취소하되 변경 내용은 남긴다보통
git reset --hard HEAD~1직전 커밋과 변경 내용을 모두 버린다위험 · 복구 불가

--hard는 문자 그대로 하드합니다. 이 옵션을 누르는 순간 작업한 파일까지 함께 사라집니다. 6장에서 본 Revert가 안전한 이유는 되돌림 자체가 새 커밋으로 기록되기 때문입니다. 평소에는 Revert를, reset --hard는 "정말로 버려도 되는 줄 알지만 확인"이 끝난 뒤에만 씁니다.

A.4 .gitignore 자주 쓰는 패턴 (교사 환경 기준)

10장에서 다룬 .gitignore를 교사용 프로젝트에 맞게 정리한 표준 템플릿입니다. 새 프로젝트를 시작할 때마다 그대로 복사해 쓰면 됩니다.

# 환경변수 · API 키
.env
.env.local
.env.production
.env.development

# AI 도구 설정
.claude/
.cursor/
.aider*

# 에디터 · OS 부산물
.vscode/
.idea/
.DS_Store
Thumbs.db

# 의존성 폴더
node_modules/
__pycache__/
venv/
.venv/

# 빌드 산출물
dist/
build/
.next/
out/

# 로그 · 임시 파일
*.log
*.tmp

위 템플릿은 웹(Next.js 계열), 파이썬 스크립트, Claude·Cursor 설정을 모두 포함합니다. 해당 도구를 쓰지 않아도 줄을 남겨 두어 나쁠 것이 없습니다. 나중에 쓰게 됐을 때 이미 막혀 있습니다.