본문으로 건너뛰기
Git · GitHub 기초집LESSON 15

작업 취소: restore, revert, reset의 차이

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

15강. 작업 취소: restore, revert, reset의 차이

1. 이번 강의에서 해결할 문제​

“되돌리기”라는 목적만 보고 reset --hard를 복사하면 커밋되지 않은 작업을 복구하기 어렵게 잃을 수 있습니다. 작업 폴더, stage, 공유 이력 중 무엇을 바꿀지 먼저 구분합니다.

2. 학습 목표​

3. 핵심 개념​

restore는 파일 내용을 복원하거나 stage에서 내립니다. revert는 과거 커밋을 상쇄하는 새 커밋을 만들어 공유 이력에 안전합니다. reset은 현재 브랜치가 가리키는 커밋을 옮기며 옵션에 따라 stage와 작업 파일도 바꿉니다.

4. 단계별 명령어와 예시​

실습 경로: C:\dev\git-learning-site

PowerShell · 커밋 전
git status
git diff -- README.md
git restore -- README.md
git restore --staged profile.md

공유된 커밋 취소: 먼저 대상 내용을 확인합니다.

PowerShell · 공유 이력
git show --stat <commit-id>
git revert <commit-id>
git push

git reset --hard <commit>은 작업 폴더와 stage를 대상 커밋으로 강제 맞춰 커밋하지 않은 변경을 삭제합니다. 일반 학습 흐름에서는 사용하지 않습니다. 꼭 필요한 개인 브랜치에서도 먼저 아래처럼 복구 브랜치를 만들고 status를 확인합니다.

PowerShell · 안전장치
git status
git branch backup/before-reset
git log --oneline -n 5

5. 명령어가 동작하는 이유​

restore는 브랜치 포인터를 움직이지 않습니다. revert는 반대 patch를 새 커밋으로 적용해 과거 커밋과 취소 사실을 모두 남깁니다. reset은 브랜치 참조 자체를 옮기므로 공유된 이력에 쓰면 다른 복제본과 충돌합니다.

6. 자주 하는 실수와 안전한 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

작업 취소: restore, revert, reset의 차이 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“작업 취소: restore, revert, reset의 차이”의 개념 차이를 실제 작업에 적용한 판단은 무엇인가요?
  2. 문제 2‘복구 지점 없이 hard reset’ 실수를 판단할 때 “작업 취소: restore, revert, reset의 차이” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

15강. 작업 취소: restore, revert, reset의 차이 미완료 상태