ตัวอย่างบทเรียน

오류 취소하기: restore, reset, revert — 올바른 방법과 위험한 방법

면접과 실제 업무에서 가장 많이 요구되는 주제 중 하나는 이미 수행한 작업을 취소하는 방법입니다. 우리는 취소의 '깊이'가 다른 세 가지 도구를 살펴보고, 가장 중요한 부분에 집중할 것입니다: reset --hard가 팀워크를 어떻게 망치는지, 그리고 revert가 안전한 대안인 구체적인 시나리오를 보여드립니다. 좋은 결정과 나쁜 결정 — 실제 결과와 함께.

git restore git reset git revert
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • 작업 디렉토리, 인덱스, 커밋 기록 등 모든 단계에서 변경 사항을 자신 있게 취소할 수 있습니다.
  • reset과 revert의 근본적인 차이점을 이해하고, 각각이 적합한 상황을 알게 됩니다.
  • 팀 리포지토리에서 변경 사항을 취소할 때 초보자들이 흔히 저지르는 실수를 피하는 방법을 배웁니다.

จุดเริ่มต้นของบทเรียน

Git restore: 파일용 취소 버튼

  • Git restore — 커밋되지 않은 변경 사항 취소
  • 편집기의 '취소' 버튼처럼 작동
  • 안전 — 커밋 기록을 변경하지 않음
  • 파일을 마지막으로 저장된 상태로 되돌림

실수로 오류가 있는 파일을 저장하고 원래대로 되돌리고 싶다고 상상해보세요. Git restore는 마법의 취소 버튼처럼 작동합니다. 파일을 마지막으로 기록된 상태로 되돌려줍니다. 다른 취소 명령과 달리, restore는 커밋되지 않은 변경 사항에만 작동하며 프로젝트 기록에 완전히 안전합니다. 우발적인 수정 사항을 기록 변경 위험 없이 빠르게 수정해야 할 때 가장 먼저 사용해야 하는 도구입니다.

작업 디렉토리 변경 사항 취소

  • git restore file.txt — 파일을 마지막 커밋으로 되돌림
  • 작업 디렉토리의 모든 변경 사항 취소
  • 안전 — 변경 사항은 편집기를 통해 복원 가능
  • 복원 전 git status로 상태 확인

예를 들어, 30분 동안 설정 파일을 수정했지만 잘못된 방향으로 가고 있다는 것을 깨달았다고 가정해봅시다. 각 변경 사항을 수동으로 되돌리는 대신 git restore config.yml을 실행하세요. 파일은 즉시 마지막 커밋의 상태로 돌아갑니다. 이는 파일을 저장하지 않고 닫는 것과 같지만, 작업 버전으로 돌아간다는 보장이 있습니다.

# 파일 복원 데모
$ echo "잘못된 변경 사항" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status

인덱스에서 파일 제거

  • git restore --staged file.txt — 인덱스에서 파일 제거
  • 작업 디렉토리의 변경 사항 유지
  • 주의: --staged 없이 실행하면 변경 사항 손실
  • 실행 전 항상 git status 확인

흔한 실수 중 하나는 실수로 인덱스에 불필요한 파일을 추가하는 것입니다. 예를 들어, git add .을 실행하여 임시 설정 파일을 스테이징했을 수 있습니다. git restore에 staged 플래그와 settings.tmp 파일 이름을 함께 사용하면 인덱스에서 파일을 깔끔하게 제거하지만 작업 디렉토리의 모든 변경 사항을 유지합니다. staged 플래그 없이 실행하면 작업 내용을 잃을 수 있으므로, restore를 실행하기 전에 항상 git status로 상태를 확인하세요. 이제 커밋 전 변경 사항을 취소하는 방법을 알게 되었습니다. 하지만 실수가 이미 기록에 들어갔다면 어떻게 해야 할까요? 이때 git reset이 도움을 줍니다.

# 실수로 인덱스에 파일 추가
$ git add config.tmp
$ git status

# 인덱스에서 제거하고 변경 사항 유지
$ git restore --staged config.tmp
$ git status

# 파일이 작업 디렉토리에 남아 있는지 확인
$ ls -la config.tmp

บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก

ฉบับเต็มมีสไลด์เพิ่มอีก 24 สไลด์

วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก

เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิก

เนื้อหาบทเรียน

  1. Git restore: 파일용 취소 버튼
  2. 작업 디렉토리 변경 사항 취소
  3. 인덱스에서 파일 제거
  4. Git reset: 기록 되감기 작동 방식
  5. 안전한 reset --soft: 인덱스 변경 사항 유지
  6. 표준 reset --mixed: 작업 디렉토리 변경 사항 유지
  7. 위험한 reset --hard: 영구 삭제
  8. Reset: 세 가지 모드, 하나의 명령어
  9. git reset --soft: 안전하게 기록을 다시 쓰다
  10. --mixed와 --hard 사용 시기
  11. 체크리스트: 어떤 reset을 선택할까?
  12. 실수를 그냥 지울 수 없는 이유는?
  13. 실전에서 git revert 사용법
  14. 여러 커밋을 한 번에 취소
  15. Reset: 로컬에서 기록 다시 쓰기
  16. Revert: 안전하게 변경 사항 되돌리기
  17. Push 시 발생 상황: reset vs revert
  18. reset --hard가 위험한 이유
  19. 변경 사항 손실 예시
  20. 데이터 복구 방법
  21. 공유 브랜치에서 되돌리기의 위험
  22. revert를 통한 안전한 되돌리기
  23. 올바른 실행 순서
  24. 언제 무엇을 사용할까: restore, reset, revert
  25. 개인 및 공용 히스토리 작업 규칙
  26. 오류 발생 시 단계별 가이드
  27. 요약 및 과제: 되돌리기의 달인

บทความเกี่ยวกับบทเรียนนี้

บทเรียนทั้งหมดในคอร์สนี้

  1. 소개: 완전 초보에서 자신 있는 개발자로 성장하기 위한 Git
  2. Git가 왜 필요한가? — 취업에 왜 필수인가
  3. Git 설치 및 설정: 첫 실행을 위한 준비
  4. 첫 번째 저장소: init, add, commit과 인덱스의 마법
  5. 히스토리 읽기: log, diff, show 및 과거 탐색
  6. 브랜치: 코드의 평행 현실
  7. 오류 취소하기: restore, reset, revert — 올바른 방법과 위험한 방법
  8. GitHub 및 원격 저장소: 클라우드에 코드 저장하기
  9. 팀워크: 포크, 기능 브랜치 및 풀 리퀘스트
  10. 병합 충돌: 당황하지 말고 이해하고 해결하기
  11. 실제 팀의 Git 프로세스: 어떤 워크플로우를 선택할까
  12. 고급 도구: 리베이스, 스태시, 체리픽 및 태그
  13. 최종 프로젝트: 실제 팀 개발 시뮬레이션