- Published on
Git / GitHub Cheatsheet
- Authors

- Name
- seren-wib
Contents
헷갈릴 때 보는 개인 치트시트. 명령어는 터미널에서 저장소 폴더로 들어간 뒤 실행.
0. 기본 개념
- 로컬: 내 컴퓨터에 있는 파일/저장소
- 원격(remote, origin): GitHub에 올라가 있는 저장소
- 커밋(commit): 변경사항을 기록한 스냅샷 하나
- stash(스태시): 작업 중인 변경을 임시로 "서랍"에 치워두는 것
1. 지금 상태 보기
git status # 어떤 파일이 바뀌었는지
git log --oneline -10 # 최근 커밋 10개
git fetch # 원격 정보만 받아옴 (파일은 안 바뀜)
git log HEAD..@{u} --oneline # 원격에 있는데 나한텐 없는 커밋
2. 변경사항 잃지 않고 pull 하기 ★ (2026-06-13에 했던 작업)
로컬에 수정 중인 파일이 있는데 원격에도 새 커밋이 있을 때. 그냥 git pull 하면 겹치는 파일에서 멈추거나 거부됨. 안전 순서:
# 1. 로컬 변경을 서랍에 치워둠 (-u 는 새로 만든 untracked 파일까지 포함)
git stash push -u -m "pull 전 임시 보관"
# 2. 깨끗해진 상태에서 원격 받아오기
git pull --ff-only
# 3. 치워둔 변경 다시 꺼내기
git stash pop
- 겹치는 파일이 있으면
stash pop에서 충돌(conflict) 이 남 → 아래 3번으로. - 데이터는 안 사라짐. stash는 충돌나도
git stash list에 남아있음.
3. 충돌(conflict) 해결
충돌난 파일을 열면 이런 마커가 들어있음:
<<<<<<< Updated upstream
원격(받아온 쪽) 내용
=======
내 로컬(stash) 내용
>>>>>>> Stashed changes
해결법:
- 셋 중 살릴 내용만 남기고 마커 세 줄을 직접 지움 (
<<<,===,>>>) - 양쪽 다 필요하면 둘 다 남기고 마커만 지움
- 정리한 파일을 스테이지:
git add "파일경로"
파일 삭제 vs 수정 충돌 (한쪽은 지우고 한쪽은 고친 경우):
git rm "파일경로" # 삭제를 선택할 때
# 또는
git add "파일경로" # 남기기를 선택할 때 (파일은 살아있음)
충돌 다 정리했으면 stash 서랍 비우기:
git stash drop # 방금 꺼낸 stash 삭제
git stash list # 남은 stash 확인
4. 커밋하고 올리기
git add . # 모든 변경 스테이지 (또는 "파일명" 만)
git commit -m "메시지" # 커밋
git push # 원격(GitHub)에 올리기
5. 되돌리기 (실수했을 때)
git restore "파일" # 수정한 내용 버리고 마지막 커밋 상태로
git restore --staged "파일" # add 한 걸 취소 (변경은 유지)
git stash list # 치워둔 변경 목록
git stash pop # 가장 최근 stash 다시 꺼내기
git reset --hard HEAD # ⚠️ 모든 로컬 변경 버림 (되돌리기 불가, 주의)
자주 쓰는 한 줄 요약
| 하고 싶은 것 | 명령어 |
|---|---|
| 상태 확인 | git status |
| 원격 변경 안전하게 받기 | stash → git pull --ff-only → git stash pop |
| 충돌 해결 후 | 마커 지우고 git add |
| 커밋 | git add . → git commit -m "..." |
| GitHub에 올리기 | git push |
| 변경 임시 보관 | git stash push -u |
| 보관한 거 꺼내기 | git stash pop |