⌨️ Git CLI

명령어로 배우는 Git 기초

터미널이 두렵지 않아지는 순간

📅 2026.02.15 ⏱️ 12분 읽기 👨‍💻 개발자

💭 왜 명령어를 배워야 할까?

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%는 해결됩니다.

📊 기본 작업 흐름

1 git status 상태 확인
2 git add . 변경사항 추가
3 git commit -m "메시지" 커밋 생성
4 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)

원인: 같은 줄을 서로 다르게 수정했을 때

해결:

  1. 충돌 파일 열기
  2. <<<<<<<, =======, >>>>>>> 부분 찾기
  3. 원하는 코드만 남기고 나머지 삭제
  4. 저장 후 커밋

❓ 문제: 커밋 메시지를 잘못 입력했어요

해결 (push 하기 전):

git commit --amend -m "올바른 메시지"

⚠️ 이미 push 했다면 사용하지 마세요 (다른 사람에게 영향)

🎓 마치며

처음엔 명령어가 무섭게만 느껴졌는데, 한 달 정도 쓰다 보니 손에 익더군요. 지금은 GitHub Desktop보다 터미널이 더 편합니다. 마우스 없이 키보드만으로 뚝딱뚝딱 작업하는 느낌이 참 좋습니다.

💡 명령어 학습 팁

  • • 처음엔 기본 4개만 익히기 (status, add, commit, push)
  • • 매일 사용하다 보면 자연스럽게 외워짐
  • • 모르는 명령어는 git 명령어 --help로 확인
  • • 실수해도 괜찮습니다! 거의 대부분 되돌릴 수 있습니다

다음 글에서는 실제로 제가 이 프로젝트를 GitHub에 업로드하고, Cloudflare Pages로 배포하는 전체 과정을 정리해보려 합니다. 처음 해보는 거라 시행착오도 많았지만, 그만큼 배운 것도 많았거든요.

🚀

다음 글 예고

GitHub → Cloudflare Pages 자동 배포 성공기

블로그 목록으로 홈으로 가기