logo
Published on

Git / GitHub Cheatsheet

Authors
  • avatar
    Name
    seren-wib
    Twitter
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

해결법:

  1. 셋 중 살릴 내용만 남기고 마커 세 줄을 직접 지움 (<<<, ===, >>>)
  2. 양쪽 다 필요하면 둘 다 남기고 마커만 지움
  3. 정리한 파일을 스테이지:
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