왜 Git을 배워야 했나
웹 개발을 독학하면서 한동안은 파일을 복사하는 방식으로 버전을 관리했습니다. "index_최종.html", "index_진짜최종.html", "index_최종_수정_v3.html" 같은 파일명이 폴더에 쌓이기 시작했죠. 어느 파일이 가장 최신인지 헷갈리고, 이전에 잘 동작하던 코드로 되돌리고 싶어도 어디서부터 바뀌었는지 찾을 수 없었습니다.
그때 개발 커뮤니티에서 "Git을 쓰면 그런 문제가 해결된다"는 이야기를 들었습니다. 처음에는 "나는 혼자 작업하는데 버전 관리가 필요할까?"라고 생각했지만, 막상 사용해보니 혼자 작업할 때도 Git은 엄청나게 유용했습니다.
Git 설치와 첫 번째 커밋
Git을 설치하고 터미널을 처음 열었을 때의 막막함은 아직도 생생합니다. 검은 화면에 커서만 깜빡이는데, 무엇을 입력해야 할지 전혀 감이 오지 않았습니다. 유튜브 강의를 보면서 따라한 첫 번째 명령어들을 정리해 보겠습니다.
# Git 초기 설정
git config --global user.name "IamMove"
git config --global user.email "[email protected]"
# 프로젝트 폴더에서 Git 시작
cd my-project
git init
# 파일 추가하고 첫 커밋
git add .
git commit -m "첫 번째 커밋: 프로젝트 초기 설정"
첫 번째 커밋 메시지를 작성하고 엔터를 누르는 순간, 마치 타임머신의 버튼을 만든 것 같은 기분이 들었습니다. 이제 언제든 이 시점으로 돌아올 수 있다는 안도감이 밀려왔습니다.
초보자가 자주 하는 실수들
Git을 사용하면서 정말 많은 실수를 했습니다. 같은 실수를 반복하지 않기 위해, 그리고 저와 같은 초보자분들이 참고할 수 있도록 대표적인 실수들을 공유합니다.
실수 1: .gitignore를 설정하지 않음
처음에 git add . 명령어로 모든 파일을 추가했더니, node_modules 폴더까지 전부 커밋되어 버렸습니다. 수천 개의 파일이 한꺼번에 올라가서 깜짝 놀랐죠. 이후로 프로젝트를 시작할 때 가장 먼저 .gitignore 파일을 만드는 습관을 들였습니다.
# .gitignore 예시
node_modules/
.DS_Store
.env
*.log
실수 2: 커밋 메시지를 대충 작성
초반에는 커밋 메시지를 "수정", "변경", "업데이트" 같은 한 단어로 작성했습니다. 나중에 로그를 보니 무엇을 왜 수정했는지 전혀 알 수 없었습니다. 지금은 다음과 같은 규칙을 지키려고 노력합니다.
- 무엇을 변경했는지 구체적으로 적기
- 왜 변경했는지 이유를 간단히 적기
- 한 커밋에는 하나의 논리적 변경만 포함하기
- 현재형으로 작성하기 (예: "헤더 스타일 수정" 대신 "헤더 스타일 변경")
커밋 메시지는 미래의 나에게 보내는 편지입니다. 3개월 뒤에 이 코드를 다시 볼 때, 과거의 내가 왜 이런 변경을 했는지 이해할 수 있도록 작성하세요.
실수 3: git push 전에 확인하지 않음
GitHub에 처음 push 했을 때, 개인 메모가 적힌 파일까지 함께 올라간 적이 있습니다. 공개 저장소였기 때문에 누구나 볼 수 있는 상태였죠. 그 이후로 push 전에 반드시 git status와 git diff로 변경 사항을 확인하는 습관을 들였습니다.
핵심 명령어 정리
매일 사용하면서 자연스럽게 익힌 핵심 명령어들을 정리해 보았습니다. 이 정도만 알아도 기본적인 버전 관리가 가능합니다.
# 상태 확인 (가장 많이 쓰는 명령어!)
git status
# 변경 사항 확인
git diff
# 파일 추가 및 커밋
git add 파일명
git commit -m "커밋 메시지"
# 커밋 이력 확인
git log --oneline
# 이전 커밋으로 돌아가기
git checkout 커밋해시
# GitHub에 올리기
git push origin main
# GitHub에서 가져오기
git pull origin main
GitHub로 포트폴리오 관리하기
Git을 로컬에서만 사용하다가 GitHub에 저장소를 만들어 코드를 올리기 시작했습니다. 처음에는 단순히 백업 용도였는데, 점점 포트폴리오로서의 가치를 깨닫게 되었습니다. 커밋 히스토리를 통해 제가 꾸준히 공부하고 있다는 것을 보여줄 수 있고, GitHub Pages를 통해 웹사이트를 무료로 호스팅할 수도 있었습니다.
이 블로그를 포함한 포트폴리오 사이트도 GitHub Pages로 운영하고 있습니다. 코드를 push하면 자동으로 사이트가 업데이트되는 과정이 처음에는 신기하기만 했는데, 이제는 그 원리도 조금씩 이해하게 되었습니다.
마치며: 버전 관리는 선택이 아닌 필수
Git을 배우기 전과 후를 비교하면, 작업 효율성이 비교할 수 없을 만큼 높아졌습니다. 실수를 해도 이전 상태로 되돌릴 수 있다는 안정감, 변경 이력이 고스란히 남아있다는 체계성, 그리고 GitHub를 통한 코드 공유와 협업의 가능성까지. 처음에는 어렵게 느껴졌지만 배워두길 정말 잘했다고 생각합니다.
Git은 처음 2주가 가장 어렵습니다. 그 고비만 넘기면, 이전에 Git 없이 어떻게 작업했는지 의문이 들 정도로 자연스러워집니다. 초보자분들, 포기하지 마세요!