Skip to content

Git 명령어 한눈에 보기

실제로 자주 쓰는 Git 명령어를 작업별로 묶었습니다: 저장소 설정, 스냅샷 찍기, 브랜치와 병합, 히스토리 조회, 원격 공유, 실수 되돌리기, stash 저장, 파일·서브모듈 관리. 각 행은 명령어와 실제 사용 예를 함께 보여줍니다.

Git에는 수백 개의 명령어가 있지만 일상 작업에는 일부만 필요합니다. 핵심 개념은 이렇습니다: 워킹 트리는 현재 파일, 인덱스(스테이징 영역)는 다음 커밋, HEAD는 현재 커밋입니다. 스테이지하고, 커밋하고, 공유합니다. status는 자주 확인하세요. 아래 내용은 나열된 명령이 이미 존재한다고 가정합니다.

참조 표 · 55 항목
55 of 55 rows
설정 및 구성
모든 저장소에 한 번만 이름, 이메일, 편집기를 설정합니다.git config --global user.name "Ada"
자주 입력하는 명령에 단축 이름을 지정합니다.git config --global alias.co checkout
현재 폴더에 새 저장소를 만듭니다.git init
원격 저장소를 내 컴퓨터로 복사합니다.git clone git@github.com:org/repo.git
단일 브랜치의 최신 커밋만 복사합니다.git clone --depth 1 --single-branch git@github.com:org/repo.git
스냅샷 기본
스테이지됨, 수정됨, 추적 안 됨 상태를 보여줍니다.git status -sb
변경 사항을 스테이지에 올려 다음 커밋에 포함시킵니다.git add src/app.ts
변경 사항을 조각(hunk) 단위로 검토하고 수락한 것만 스테이지합니다.git add -p src/app.ts
추적 중인 모든 파일의 변경 사항을 새 파일 추가 없이 스테이지합니다.git add -u
스테이지된 변경 사항을 새 커밋으로 기록합니다.git commit -m "fix: null check"
마지막 커밋을 수정된 커밋으로 교체합니다.git commit --amend -m "fix: handle empty input"
스테이지되지 않은 변경 사항, 또는 --staged로 스테이지된 변경 사항을 보여줍니다.git diff --staged
마지막 커밋 이후의 모든 변경 사항을 스테이지 여부와 관계없이 보여줍니다.git diff HEAD
브랜치와 병합
브랜치를 나열, 생성, 삭제합니다.git branch feature-x
병합된 브랜치를 삭제합니다 (-D는 강제 삭제, -a는 모든 브랜치 표시).git branch -d feature-x
브랜치를 전환합니다 (checkout의 현대적 대체 명령).git switch feature-x
새 브랜치를 만들고 한 번에 전환합니다.git switch -c feature-x
브랜치를 전환하거나 파일을 복원합니다 (오래되고 폭넓은 명령).git checkout feature-x
다른 브랜치의 변경 사항을 현재 브랜치로 가져옵니다.git merge feature-x
충돌 중인 병합을 취소하고 브랜치를 이전 상태로 되돌립니다.git merge --abort
현재 브랜치의 커밋을 다른 브랜치 위에 다시 재생합니다.git rebase main
커밋을 재생하면서 합치기(squash), 재정렬, 편집을 합니다.git rebase -i main
다른 브랜치의 단일 커밋을 이 브랜치로 복사합니다.git cherry-pick a1b2c3d
커밋에 버전 같은 읽기 쉬운 라벨을 붙입니다.git tag -a v1.2.0
다른 브랜치를 별도 폴더에서 동시에 체크아웃합니다.git worktree add ../repo-feature feature-x
히스토리 조회
커밋 히스토리를 순서대로 살펴봅니다.git log --oneline --graph --decorate
현재 브랜치뿐 아니라 모든 브랜치의 히스토리를 살펴봅니다.git log --oneline --graph --all
단일 커밋의 전체 diff와 메시지를 보여줍니다.git show HEAD
파일의 각 줄을 마지막으로 변경한 사람을 보여줍니다.git blame src/app.ts
HEAD가 가리켰던 모든 커밋을 버려진 것까지 보여줍니다.git reflog
히스토리를 반씩 나눠 검색해 문제를 일으킨 커밋을 찾습니다.git bisect start
커밋을 작성자별로 요약합니다.git shortlog -sn
가장 가까운 태그부터 세어 현재 커밋에 이름을 붙입니다.git describe --tags
원격 협업
원격 저장소를 나열하거나 추가합니다.git remote add origin <url>
원격 목록을 fetch·push URL과 함께 보여줍니다.git remote -v
브랜치를 바꾸지 않고 원격 변경 사항을 내려받습니다.git fetch origin
원격 변경 사항을 내려받고 삭제된 원격 브랜치의 ref를 정리합니다.git fetch --prune
현재 브랜치의 원격 변경 사항을 내려받아 병합합니다.git pull --rebase
로컬 커밋을 원격으로 보냅니다.git push -u origin feature-x
원격 브랜치를 덮어쓰되, 누군가 먼저 push했으면 실패합니다.git push --force-with-lease origin feature-x
변경 되돌리기
워킹 트리 변경 사항을 버리거나 스테이지에서 해제합니다.git restore src/app.ts
파일을 스테이지에서 해제하되 수정 내용은 워킹 트리에 유지합니다.git restore --staged src/app.ts
현재 브랜치 끝과 선택적으로 인덱스를 이동합니다.git reset --hard HEAD~1
이전 커밋을 되돌리는 새 커밋을 추가합니다 (공유해도 안전).git revert HEAD
추적되지 않는 파일과 폴더를 삭제합니다.git clean -fd
스태시
커밋하지 않은 작업을 저장하고 워킹 트리를 초기화합니다.git stash -u
저장한 모든 스태시를 보여줍니다.git stash list
스태시를 다시 적용하고 목록에 유지합니다.git stash apply stash@{1}
더 이상 필요 없는 스태시를 삭제합니다.git stash drop stash@{1}
가장 최근 스태시를 다시 적용하고 목록에서 제거합니다.git stash pop
파일과 서브모듈
파일을 이동하거나 이름을 바꾸고 변경을 스테이지합니다.git mv old.ts src/new.ts
파일을 삭제하고 삭제를 스테이지합니다.git rm src/old.ts
다른 저장소를 이 저장소 안의 폴더로 추적합니다.git submodule add git@github.com:org/lib.git lib
큰 저장소에서 지정한 폴더만 체크아웃합니다.git sparse-checkout set src docs
커밋의 트리를 tar 또는 zip 파일로 내보냅니다.git archive -o repo.zip HEAD