1장 저장이 아니라 역사를 만든다
문서를 저장하면 현재 모습 하나가 남는다. Git 커밋은 선택한 파일들의 한 시점, 부모 커밋, 작성자, 설명을 묶어 프로젝트의 역사를 만든다. 그래서 Git의 질문은 “저장했나?”가 아니라 “어떤 변경을 한 덩어리로 설명할 것인가?”다.
Git은 중앙 서버에 접속해야만 작동하는 동기화 앱이 아니다. 로컬 저장소만으로도 커밋과 브랜치와 복구가 된다. GitHub, GitLab, Bitbucket 같은 원격 호스팅은 그 역사를 팀과 교환하는 장소다. 이 구분을 모르면 인터넷이 끊겼을 때 커밋을 못 한다고 생각하거나, 커밋했으니 팀원도 보았다고 오해한다.
첫 실습 환경
Git과 Node.js 20 이상이 설치된 터미널에서 책 프로젝트로 이동한다.
cd git-field-guide
git --version
node --version
npm run lab:setup
cd sandbox/releasedesk
git status
git log --oneline --graph --decorate --all
마지막 그래프에는 main과 feature/search가 보인다. WORKSPACE.txt는 아직 추적되지 않은 파일이다. 이 상태가 앞으로 모든 실습의 출발점이다. 다시 시작하고 싶으면 책 루트에서 npm run lab:setup을 실행한다. 이 명령은 오직 git-field-guide/sandbox만 다시 만든다.
처음부터 지킬 세 가지
- 명령을 복사하기 전에 현재 경로와 브랜치를 확인한다.
- 파괴적인 명령 전에
status,diff,log를 기록한다. - 실제 고객 저장소에서 복구 명령을 연습하지 않는다.