명령어로 배우는 Git 기초
터미널이 두렵지 않아지는 순간
💭 왜 명령어를 배워야 할까?
GitHub Desktop을 사용하면서 꽤 편했는데, 어느 날 문득 이런 생각이 들었습니다. "다른 개발자들은 터미널에서 뭔가를 엄청 빠르게 치던데, 나도 저렇게 할 수 있을까?" 그래서 Git 명령어를 본격적으로 배우기 시작했습니다.
처음엔 어색했지만, 한 달쯤 쓰다 보니 손이 기억하더군요. 마우스 클릭보다 키보드로 치는 게 훨씬 빠르다는 걸 깨달았습니다. 오늘은 제가 실전에서 가장 많이 쓰는 Git 명령어들을 정리해보려 합니다.
💡 이 글에서 다룰 내용
- • 기본 Git 명령어 (init, add, commit, push)
- • 브랜치 관리 기초
- • 상태 확인 및 되돌리기
- • 실무에서 자주 쓰는 명령어 조합
🚀 Git 설치 확인
명령어를 배우기 전에 Git이 설치되어 있는지 확인했습니다. 터미널(또는 PowerShell, CMD)을 열고 다음 명령어를 입력했습니다:
git --version
버전 정보가 나오면 정상입니다. 만약 "명령어를 찾을 수 없습니다" 같은 오류가 나온다면 Git을 설치해야 합니다.
🔗 Git 다운로드
https://git-scm.com/downloads⚙️ 초기 설정
Git을 처음 사용할 때는 이름과 이메일을 설정해야 합니다. 이 정보는 모든 커밋에 저장됩니다.
git config --global user.name "내이름"
git config --global user.email "my@email.com"
💡 --global을 붙이면 컴퓨터 전체에 적용됩니다. 프로젝트마다 다르게 설정하려면 --global을 빼면 됩니다.
설정 확인하기
git config --list
📦 저장소 시작하기
방법 1: 새 프로젝트 시작
새 프로젝트를 만들 때 사용합니다. 프로젝트 폴더로 이동한 후:
cd D:\Project\MyNewProject
git init
✅ .git 폴더가 생성되면 성공입니다. (숨김 폴더이므로 보이지 않을 수 있습니다)
방법 2: 기존 프로젝트 복제
GitHub에 있는 다른 프로젝트를 내 컴퓨터로 가져올 때 사용합니다:
git clone https://github.com/username/repository.git
🔄 기본 워크플로우
실제로 가장 많이 사용하는 명령어 흐름입니다. 이 4단계만 익히면 80%는 해결됩니다.
📊 기본 작업 흐름
git status
상태 확인
git add .
변경사항 추가
git commit -m "메시지"
커밋 생성
git push
서버에 업로드
1️⃣ git status - 현재 상태 확인
코드를 수정한 후 어떤 파일이 변경되었는지 확인할 때 사용합니다. 저는 이 명령어를 하루에 수십 번은 칩니다.
git status
📤 출력 예시:
On branch main
Changes not staged for commit:
modified: index.html
modified: css/styles.css
Untracked files:
new-feature.js
- • modified: 기존 파일이 수정됨
- • Untracked: 새로 만들어진 파일
2️⃣ git add - 변경사항 스테이징
커밋할 파일을 "무대 위(Stage)"에 올리는 작업입니다. 사진 찍을 때 어떤 사람들을 무대에 세울지 정하는 것과 비슷합니다.
모든 파일 추가
git add .
가장 많이 사용됩니다
특정 파일만 추가
git add index.html
선택적으로 커밋할 때
3️⃣ git commit - 저장 지점 만들기
스테이징된 변경사항을 저장합니다. 게임의 세이브 포인트를 만드는 것과 같습니다.
git commit -m "MBTI 테스트 페이지 추가"
✍️ 좋은 커밋 메시지 작성법
✅ 좋은 예:
- • "로그인 폼 유효성 검사 추가"
- • "버그 수정: 모바일에서 메뉴 안 보이는 문제"
- • "성능 개선: 이미지 lazy loading 적용"
❌ 나쁜 예:
- • "수정"
- • "ㅁㄴㅇㄹ"
- • "오늘 작업"
💡 커밋 메시지 스타일 가이드
- • 명령형으로 작성: "추가했음" ❌ → "추가" ✅
- • 구체적으로: 무엇을 왜 바꿨는지
- • 짧게: 한 줄로 요약 (자세한 내용은 Description에)
4️⃣ git push - 서버에 업로드
로컬에 저장된 커밋을 GitHub 서버로 보냅니다.
git push origin main
💡 origin은 원격 저장소 이름, main은 브랜치 이름입니다. 짧게 git push만 쳐도 대부분 작동합니다.
🌿 브랜치 관리
브랜치는 "평행 세계"를 만드는 것과 같습니다. main 브랜치는 건드리지 않고 새로운 기능을 개발할 수 있습니다.
브랜치 생성 및 이동
# 새 브랜치 만들기
git branch feature/new-test
# 브랜치로 이동하기
git checkout feature/new-test
# 위 두 명령을 한 번에
git checkout -b feature/new-test
브랜치 목록 확인
git branch
브랜치 병합
새 기능 개발이 끝나면 main 브랜치에 합칩니다:
# main 브랜치로 이동
git checkout main
# feature 브랜치를 main에 병합
git merge feature/new-test
브랜치 삭제
# 로컬 브랜치 삭제
git branch -d feature/new-test
# 원격 브랜치 삭제
git push origin --delete feature/new-test
⏪ 변경사항 되돌리기
실수했을 때 되돌리는 방법입니다. 저도 처음엔 이게 제일 무서웠는데, 알고 나니 안전장치가 되더군요.
1. 아직 add 안 한 변경사항 취소
# 특정 파일 되돌리기
git checkout -- index.html
# 모든 변경사항 되돌리기
git checkout -- .
⚠️ 주의
이 명령은 되돌릴 수 없습니다. 변경사항이 완전히 사라집니다.
2. add한 파일 언스테이징
# 특정 파일만
git reset HEAD index.html
# 모든 파일
git reset HEAD .
💡 파일 내용은 그대로 유지되고, Stage에서만 내려옵니다.
3. 커밋 취소하기
방법 1: 커밋만 취소 (변경사항 유지)
git reset --soft HEAD~1
커밋은 취소되지만 파일 변경은 Stage에 남아있음
방법 2: 커밋 + Stage 취소 (변경사항 유지)
git reset HEAD~1
가장 많이 사용. 파일 변경은 남아있지만 Stage에서 내려옴
⚠️ 방법 3: 완전히 되돌리기 (변경사항 삭제)
git reset --hard HEAD~1
위험! 파일 변경까지 모두 사라집니다
4. 특정 커밋으로 되돌리기 (Revert)
이미 push한 커밋을 취소할 때 안전한 방법입니다. 커밋을 삭제하는 게 아니라, "되돌리는 새 커밋"을 만듭니다.
# 커밋 히스토리 확인
git log --oneline
# 특정 커밋 되돌리기
git revert abc1234
📚 히스토리 확인
커밋 로그 보기
# 기본 로그
git log
# 한 줄로 간단하게
git log --oneline
# 그래프로 보기
git log --oneline --graph --all
# 최근 5개만
git log -5
📊 출력 예시 (--oneline --graph):
* a1b2c3d (HEAD -> main) MBTI 결과 페이지 추가
* d4e5f6g 질문 데이터 JSON 파일 작성
* g7h8i9j 테스트 페이지 레이아웃 구현
* j1k2l3m Initial commit
변경 내용 자세히 보기
# 마지막 커밋 변경사항
git show
# 특정 커밋 변경사항
git show abc1234
🔗 원격 저장소 관리
원격 저장소 연결
# 원격 저장소 추가
git remote add origin https://github.com/username/repository.git
# 원격 저장소 확인
git remote -v
원격 저장소에서 가져오기
# 변경사항 확인만 (병합 안 함)
git fetch
# 변경사항 가져오고 병합까지
git pull
💡 fetch vs pull?
- •
fetch: 변경사항만 다운로드 (안전) - •
pull: 다운로드 + 자동 병합 (빠름) - • 저는 보통 pull을 쓰지만, 충돌이 걱정되면 fetch 먼저 했습니다
🛠️ 실전 팁
자주 쓰는 명령어 조합
💼 매일 작업 시작할 때
git pull
git status
최신 코드 받고 → 상태 확인
✅ 작업 끝나고 업로드
git add .
git commit -m "작업 내용"
git push
변경사항 추가 → 커밋 → 업로드
🔄 새 기능 개발 흐름
# 1. 브랜치 생성
git checkout -b feature/new-feature
# 2. 작업 후 커밋
git add .
git commit -m "새 기능 완성"
# 3. main에 병합
git checkout main
git merge feature/new-feature
# 4. 브랜치 삭제
git branch -d feature/new-feature
자주 하는 실수와 해결법
❓ 문제: push가 안 돼요 (rejected)
원인: 다른 사람이 먼저 push 했거나, 다른 PC에서 작업했을 때
해결:
git pull --rebase
git push
❓ 문제: 병합 충돌 (merge conflict)
원인: 같은 줄을 서로 다르게 수정했을 때
해결:
- 충돌 파일 열기
<<<<<<<,=======,>>>>>>>부분 찾기- 원하는 코드만 남기고 나머지 삭제
- 저장 후 커밋
❓ 문제: 커밋 메시지를 잘못 입력했어요
해결 (push 하기 전):
git commit --amend -m "올바른 메시지"
⚠️ 이미 push 했다면 사용하지 마세요 (다른 사람에게 영향)
🎓 마치며
처음엔 명령어가 무섭게만 느껴졌는데, 한 달 정도 쓰다 보니 손에 익더군요. 지금은 GitHub Desktop보다 터미널이 더 편합니다. 마우스 없이 키보드만으로 뚝딱뚝딱 작업하는 느낌이 참 좋습니다.
💡 명령어 학습 팁
- • 처음엔 기본 4개만 익히기 (status, add, commit, push)
- • 매일 사용하다 보면 자연스럽게 외워짐
- • 모르는 명령어는
git 명령어 --help로 확인 - • 실수해도 괜찮습니다! 거의 대부분 되돌릴 수 있습니다
다음 글에서는 실제로 제가 이 프로젝트를 GitHub에 업로드하고, Cloudflare Pages로 배포하는 전체 과정을 정리해보려 합니다. 처음 해보는 거라 시행착오도 많았지만, 그만큼 배운 것도 많았거든요.
🚀
다음 글 예고
GitHub → Cloudflare Pages 자동 배포 성공기