Git - CheatSheet

요약#

빠른 참고용 Git 핵심 명령어 모음

  • 작업 흐름: init/clone → add → commit → push
  • 브랜치 작업: switch/checkout, merge, rebase, cherry-pick
  • 되돌리기/정리: restore, reset, clean, stash, reflog

용도: 필요한 명령어를 즉시 찾는 실전 치트시트

참고 자료#

Git 설정#

작업명령어설명
사용자 이름git config user.name "<user_name>"로컬 사용자 이름 설정
전역 설정git config --global ...전역 설정 적용
alias 설정git config alias.st statusst 단축 명령 설정
설정 옵션man git-config가능한 옵션 확인

시작하기#

작업명령어설명
새 저장소git init현재 디렉터리를 저장소로 초기화
저장소 복제git clone <repo_url>원격 저장소 전체 히스토리 복제

커밋 준비#

작업명령어설명
파일 스테이징git add <file>파일을 스테이징
전체 스테이징git add .변경 파일 전체 스테이징
일부 스테이징git add -p파일 일부만 선택 스테이징
파일 이동git mv <old_path> <new_path>파일 이동/이름 변경
파일 삭제git rm <file>파일 삭제 후 스테이징
추적만 제거git rm --cached <file>파일은 남기고 추적만 제거
스테이징 해제git reset <file>파일 스테이징 해제
전체 스테이징 해제git reset전체 스테이징 해제
상태 확인git status스테이징/변경 상태 확인

커밋하기#

작업명령어설명
커밋git commit편집기로 메시지 작성
커밋(메시지)git commit -m "<commit_message>"메시지 지정 커밋
커밋(추가 포함)git commit -am "<commit_message>"스테이징 없이 수정 파일 커밋

브랜치 이동#

작업명령어설명
브랜치 전환git switch <branch_name>브랜치 전환
브랜치 전환(레거시)git checkout <branch_name>브랜치 전환
브랜치 생성git switch -c <branch_name>브랜치 생성 후 전환
브랜치 생성(레거시)git checkout -b <branch_name>브랜치 생성 후 전환
브랜치 목록git branch브랜치 목록 표시
최근 커밋순 목록git branch --sort=-committerdate최신 커밋 기준 정렬
브랜치 삭제git branch -d <branch_name>병합된 브랜치 삭제
브랜치 강제 삭제git branch -D <branch_name>강제 삭제

스테이징/미스테이징 변경 비교#

작업명령어설명
전체 diffgit diff HEAD스테이징/작업 디렉터리 모두 비교
스테이징 diffgit diff --staged스테이징된 변경 비교
작업 디렉터리 diffgit diff스테이징 전 변경 비교

커밋 비교#

작업명령어설명
부모와 diffgit show <commit_ref>커밋과 부모 차이 표시
커밋 간 diffgit diff <commit_ref_a> <commit_ref_b>두 커밋 비교
파일 diffgit diff <commit_ref> <file_path>특정 파일 비교
요약 diffgit diff <commit_ref> --stat요약 diff
요약 showgit show <commit_ref> --stat요약 show

커밋 참조 방법#

표현예시설명
브랜치main브랜치가 가리키는 최신 커밋 참조
태그v0.1특정 커밋에 고정된 이름
커밋 ID<commit_sha>커밋의 고유 해시(축약 가능)
원격 브랜치<remote_name>/<branch_name>원격 저장소의 브랜치 참조
현재 커밋HEAD현재 체크아웃된 커밋
과거 커밋HEAD^^^ 또는 HEAD~3현재에서 3단계 이전 커밋을 참조

변경 사항 되돌리기#

작업명령어설명
변경 취소git restore <file_path>워킹 디렉터리 변경 취소
변경 취소(레거시)git checkout <file_path>워킹 디렉터리 변경 취소
스테이징+워킹 취소git restore --staged --worktree <file_path>스테이징과 워킹 취소
스테이징+워킹 취소(레거시)git checkout HEAD <file_path>HEAD 기준으로 복원
전체 되돌리기git reset --hard스테이징/워킹 모두 초기화
추적되지 않은 파일 삭제git clean추적되지 않은 파일 삭제
스태시 저장git stash변경 사항 임시 저장

히스토리 수정#

작업명령어설명
최근 커밋 취소git reset HEAD^워킹 유지, 이전 커밋으로 이동
커밋 합치기git rebase -i HEAD~<count>최근 n개 커밋 합치기
리베이스 복구git reflog <branch_name>실패한 리베이스 복구 탐색
리셋 복구git reset --hard <commit_ref>reflog에서 찾은 커밋으로 복구
커밋 메시지 수정git commit --amend최근 커밋 메시지 수정

코드 히스토리 탐색#

작업명령어설명
브랜치 히스토리git log <branch_name>브랜치 로그
그래프 로그git log --graph <branch_name>그래프 형태 로그
한 줄 로그git log --oneline요약 로그
파일 히스토리git log <file_path>파일 변경 로그
이름 변경 포함git log --follow <file_path>리네임 포함 추적
텍스트 변경 로그git log -G <pattern>특정 텍스트 변경 로그
라인 변경자git blame <file_path>라인별 변경자 확인

이전 파일 복원#

작업명령어설명
과거 파일 복원git checkout <commit_ref> <file_path>특정 커밋의 파일 복원
과거 파일 복원git restore <file_path> --source <commit_ref>restore로 복원

원격 저장소#

작업명령어설명
원격 추가git remote add <remote_name> <repo_url>원격 저장소 등록
pushgit push <remote_name> <branch_name>브랜치 push
push(현재 브랜치)git push추적 브랜치로 push
push(업스트림)git push -u <remote_name> <branch_name>업스트림 지정
강제 pushgit push --force-with-lease안전장치 있는 강제 push
태그 pushgit push --tags태그 push
fetchgit fetch <remote_name> <branch_name>원격 변경 가져오기
pull(rebase)git pull --rebasefetch + rebase
pull(merge)git pull <remote_name> <branch_name> 또는 git pullfetch + merge

중요 파일#

파일설명
.git/config로컬 Git 설정
~/.gitconfig전역 Git 설정
.gitignore무시 패턴 목록

분기된 브랜치 병합#

작업명령어설명
리베이스 병합git switch <feature_branch>git rebase <base_branch>브랜치 히스토리 정렬
머지 병합git switch <base_branch>git merge <feature_branch>히스토리 보존 병합
스쿼시 머지git switch <base_branch>git merge --squash <feature_branch>git commit하나의 커밋으로 병합
fast-forwardgit switch <base_branch>git merge <feature_branch>분기 없는 병합
체리픽git cherry-pick <commit_ref>특정 커밋만 가져오기

병합 다이어그램 (Mermaid)#

리베이스 병합 (Before)

gitGraph commit id:"A" commit id:"B" branch banana checkout banana commit id:"D" commit id:"E" checkout main commit id:"C"

리베이스 병합 (After)

gitGraph commit id:"A" commit id:"B" commit id:"C" branch banana checkout banana commit id:"D'" commit id:"E'"

머지 병합 (Before)

gitGraph commit id:"A" commit id:"B" branch banana checkout banana commit id:"D" commit id:"E" checkout main commit id:"C"

머지 병합 (After)

gitGraph commit id:"A" commit id:"B" branch banana checkout banana commit id:"D" commit id:"E" checkout main commit id:"C" merge banana id:"M"

스쿼시 머지 (Before)

gitGraph commit id:"A" commit id:"B" branch banana checkout banana commit id:"D" commit id:"E" checkout main commit id:"C"

스쿼시 머지 (After)

gitGraph commit id:"A" commit id:"B" branch banana checkout banana commit id:"D" commit id:"E" checkout main commit id:"C" commit id:"DE"

fast-forward 머지 (Before)

gitGraph commit id:"A" commit id:"B" commit id:"C" branch banana checkout banana commit id:"D" commit id:"E" checkout main

fast-forward 머지 (After)

gitGraph commit id:"A" commit id:"B" commit id:"C" commit id:"D" commit id:"E"

체리픽 (Before)

gitGraph commit id:"A" commit id:"B" branch banana checkout banana commit id:"D" commit id:"E" checkout main commit id:"C"

체리픽 (After)

gitGraph commit id:"A" commit id:"B" branch banana checkout banana commit id:"D" commit id:"E" checkout main commit id:"C" commit id:"D'"

공유

이 글이 도움이 되었다면 다른 사람과 공유해주세요!

Git - CheatSheet
https://moodturnpost.net/posts/git/git-cheatsheet/
작성자
Moodturn
게시일
2026-01-03
Moodturn

목차