ToolStack
EN

Git 명령어 모음

커밋·브랜치·되돌리기까지 실무 Git 명령어 정리

데이터는 서버로 전송되지 않습니다 — 모든 처리는 브라우저 안에서만 서버 전송 0건

01

설정·시작

  • git config --global user.name "이름"

    커밋에 기록될 사용자 이름을 설정합니다

  • git config --global user.email "메일주소"

    커밋에 기록될 이메일을 설정합니다

  • git config --global init.defaultBranch main

    새 저장소의 기본 브랜치 이름을 main으로 설정합니다

  • git init

    현재 디렉터리를 Git 저장소로 초기화합니다

  • git clone https://github.com/user/repo.git

    원격 저장소를 복제합니다

  • git clone --depth 1 URL

    최신 커밋만 얕게 복제합니다 (대형 저장소 빠른 클론)

02

기본 흐름 — 상태·스테이징·커밋·푸시

  • git status

    변경된 파일과 스테이징 상태를 확인합니다

  • git add .

    모든 변경 사항을 스테이징합니다

  • git add -p

    변경 덩어리(hunk) 단위로 골라서 스테이징합니다

  • git commit -m "메시지"

    스테이징된 변경을 커밋합니다

  • git commit --amend

    직전 커밋에 변경을 합치거나 메시지를 고칩니다 ※ 푸시 전에만 권장

  • git push

    커밋을 원격 저장소에 올립니다

  • git push -u origin 브랜치명

    새 브랜치를 처음 푸시하며 추적 관계를 설정합니다

  • git pull

    원격 변경을 가져와 병합합니다 (fetch + merge)

  • git fetch --all

    원격 변경을 가져오기만 하고 병합하지 않습니다

03

브랜치

  • git branch -a

    로컬·원격 브랜치 목록을 확인합니다

  • git switch 브랜치명

    브랜치를 전환합니다 (구버전은 git checkout)

  • git switch -c 새브랜치

    새 브랜치를 만들고 바로 전환합니다

  • git branch -d 브랜치명

    병합된 브랜치를 삭제합니다 (-D 는 강제 삭제)

  • git merge 브랜치명

    지정 브랜치를 현재 브랜치에 병합합니다

  • git rebase main

    현재 브랜치의 커밋을 main 위로 재배치합니다

  • git rebase -i HEAD~3

    최근 3개 커밋을 합치거나 수정합니다 (대화형)

  • git cherry-pick 커밋해시

    특정 커밋 하나만 현재 브랜치로 가져옵니다

04

이력 확인

  • git log --oneline --graph --all

    커밋 이력을 그래프로 한 줄씩 봅니다

  • git log -p 파일명

    특정 파일의 변경 이력을 diff와 함께 봅니다

  • git diff

    아직 스테이징하지 않은 변경을 봅니다

  • git diff --staged

    스테이징된 변경을 봅니다

  • git show 커밋해시

    특정 커밋의 내용을 봅니다

  • git blame 파일명

    각 줄을 누가 언제 수정했는지 확인합니다

05

되돌리기

※ reset --hard 와 clean 은 작업 내용을 복구 불가능하게 지울 수 있습니다. 실행 전 git status 로 상태를 확인하세요.

  • git restore 파일명

    워킹 디렉터리의 수정을 마지막 커밋 상태로 되돌립니다

  • git restore --staged 파일명

    스테이징만 취소합니다 (변경 내용은 유지)

  • git reset --soft HEAD~1

    커밋만 취소하고 변경은 스테이징 상태로 남깁니다

  • git reset --hard HEAD~1

    커밋과 변경 내용을 모두 버립니다 ※ 주의

  • git revert 커밋해시

    해당 커밋을 되돌리는 새 커밋을 만듭니다 (공유 브랜치에 안전)

  • git stash

    작업 중인 변경을 임시 저장하고 깨끗한 상태로 만듭니다

  • git stash pop

    임시 저장한 변경을 다시 적용합니다 (list 로 목록 확인)

  • git clean -fd

    추적되지 않는 파일·디렉터리를 삭제합니다 ※ 주의 (-n 으로 미리보기)

06

원격·태그

  • git remote -v

    등록된 원격 저장소 주소를 확인합니다

  • git remote add origin URL

    원격 저장소를 추가합니다

  • git tag -a v1.0.0 -m "릴리즈"

    주석 있는 태그를 만듭니다

  • git push origin --tags

    태그를 원격에 올립니다

  • git fetch --prune

    원격에서 삭제된 브랜치를 로컬 목록에서도 정리합니다

Git 명령어, 흐름으로 익히세요

이 페이지는 Git을 설정 → 기본 흐름(add·commit·push) → 브랜치 → 이력 확인 → 되돌리기 → 원격·태그 순서로 정리한 치트시트입니다. 위에서 아래로 읽으면 실제 작업 순서와 같아서 처음 배우는 분도 흐름째 익힐 수 있습니다.

매일 쓰는 핵심은 status, add, commit, push, pull 다섯 개입니다. 여기에 switch -c 로 브랜치를 따고, 실수했을 때 restore·reset·revert 중 상황에 맞는 것을 고를 수 있으면 협업에 필요한 Git의 80%는 갖춘 셈입니다.

※ reset --hard, clean -fd, push --force 는 되돌릴 수 없는 결과를 만들 수 있습니다. 실행 전 git status 와 대상 브랜치를 확인하세요.

자주 묻는 질문

커밋을 잘못했어요. 어떤 명령으로 되돌리나요?
아직 푸시 전이면 git reset --soft HEAD~1 로 커밋만 풀어 다시 작업하면 됩니다. 이미 푸시한 공유 브랜치라면 이력을 지우는 reset 대신 git revert 로 되돌리는 커밋을 만드는 것이 안전합니다.
merge와 rebase는 뭐가 다른가요?
merge는 두 갈래를 합치는 병합 커밋을 만들어 이력이 그대로 남고, rebase는 내 커밋을 대상 브랜치 위로 옮겨 이력이 한 줄로 정리됩니다. 공유된 브랜치를 rebase하면 동료의 이력과 충돌하므로 로컬 작업 브랜치에서만 쓰는 것이 원칙입니다.
stash한 내용이 사라졌어요.
git stash list 로 목록을 확인하세요. pop 도중 충돌이 났다면 stash는 지워지지 않고 남아 있습니다. 목록에 없다면 git fsck --unreachable 로 찾을 수 있는 경우도 있습니다.

관련 툴