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
0 / 2작업 취소: restore, revert, reset의 차이 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
15강. 작업 취소: restore, revert, reset의 차이 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.