내가 깃을 사용하려고하는 이유는 채팅창으로 개발하다보니 파일을 수정할때마다 전체를 바꿔야해서이다. 매번 새로운 파일을 만들수 없으니 컨트롤 Z에 의존하게 된다.
기획적인 측면에서 파일을 분리하기라도 하면 코드 내용이 분산되고 변경되는 것을 통제할 수가 없다. 과거 코드로 돌아가기 어렵고, 변경 부분을 찾기도 어렵다. 왜, 무엇을 변경했는지 알기도 어렵다.
앞서서 git에대해 chatgpt의 답변을 얻었지만 좀더 구체적인 답변을 얻기위해 또한번 질문했다. 이 글을 통해 한번 더 정리해보자.
이전 글 : 코딩할 때 히스토리를 관리하는 git과 vscode를 활용하는 방법을 AI에게 물어보았다.
목차
이런 상황에서 Git은 단순히 ‘백업’ 그 이상을 해준다. Git을 활용하면, 각 코드 상태를 스냅샷처럼 저장하고 과거로 쉽게 돌아가며, 무엇이 언제 왜 바뀌었는지 파악할 수 있다.
Git이 주는 결정적인 해결책
당신이 겪는 불편 | Git이 주는 해결책 | 실제로 쓰는 기능 |
---|---|---|
“어제 버전이 더 나았는데…” | 모든 변경을 스냅샷(commit)으로 저장 → 언제든 특정 시점으로 체크아웃(checkout) | git checkout <커밋해시> VS Code: 히스토리 → Checkout |
“어디가 수정됐는지 못 찾겠다” | 두 스냅샷을 diff로 비교해 바뀐 줄만 하이라이트 | git diff A B VS Code: 파일 열고 Time Travel |
“왜 이렇게 고쳤는지 기억 안 나” | 커밋마다 메시지를 남겨 “무엇·왜” 기록 | git commit -m "fix: API 오류 처리" |
“잘못 고쳤는데 되돌리기 곤란” | 선택한 커밋만 되돌리기(revert)·수정(amend) 가능 | git revert <해시> / git commit --amend |
“실험하다 망쳤다” | 별도 브랜치에서 안전하게 실험, 마음에 들면 병합 | git checkout -b test-ui → 작업 → git merge |

기초적인 Git 사용 흐름
- 리포지터리 초기화
cd 프로젝트폴더
git init→ VS Code Source Control 탭이 활성화된다.
- 작업할 때마다
- 파일 수정 → 저장
- Stage All → 메시지 입력 → Commit
- 커밋 메시지는 “무엇·왜” 한 줄이면 충분
- 지난 기록 확인
- 파일 열기 → 오른쪽 클릭 Open Timeline
- 커밋 클릭 시 그 시점 상태 미리보기
- 두 커밋 간 비교는 Compare Changes
- 과거로 돌아가기
git checkout <해시>
# 그 시점의 코드 상태로 폴더 변경됨
# 되돌아오려면
git switch main - 커밋 수정 또는 되돌리기
git commit --amend -m "docs: 주석 오타 수정"
git revert <해시> - 실험은 브랜치에서
git switch -c redesign-header
…수정…
git commit -m "feat: 새 헤더 시안"
git switch main
git merge redesign-header
기억해둘 Git & VS Code 핵심 버튼/명령 4개
하고 싶은 일 | VS Code | CLI |
---|---|---|
스냅샷 남기기 | Stage All → 메시지 → Commit | git add . + git commit -m "" |
과거 파일 보기 | Timeline 아이콘 | git show <해시>:경로/파일 |
두 커밋 비교 | 히스토리에서 커밋 2개 선택 → Compare | git diff A B |
실험 브랜치 | 좌측 하단 브랜치명 클릭 → Create Branch | git switch -c new |
요약: Git을 켜두고 작업마다 Commit 버튼만 눌러도 자동으로 히스토리, 이유, 비교, 되돌리기가 쌓인다. 과거 탐색이나 실험 롤백은 두세 번 클릭이면 충분하다.
사실 나는 git을 어떻게 활용하는게 좋은 것인지 잘 이해가 가지 않았다. 그 이유는 깃과 깃허브를 헷갈리고 있었기 때문이다. 두세번 글을 읽고 나니 pc 기반으로 명령을 하는 것을 알게 되었다. 그렇다. git은 pc 프로그램, github는 클라우드 협업도구 같은 것이었던 것이다.