되돌리기
되돌리기 — restore·reset·revert·stash·reflog 로 실수를 안전하게 복구하기
되돌리기는 딱 하나의 명령이 아니라 "어느 공간의 무엇을 되돌리는가"에 따라 명령이 갈립니다. 작업 트리(working tree)는
restore, 스테이징(staging, index)은restore --staged, 개인 커밋(commit)은reset, 이미 공유된 커밋은revert, 잠시 치워둘 작업은stash를 씁니다. 마지막 안전망인reflog까지 익히면reset --hard로 잃은 커밋도 되찾을 수 있습니다.
1. 왜 배우는가
실수는 늘 일어납니다. 파일을 잘못 고치거나, 커밋 메시지를 오타 내거나, 합치면 안 되는 브랜치(branch)를 합칠 수 있습니다. 중요한 것은 실수 자체가 아니라 되돌리는 방법을 정확히 아는 것입니다.
git 은 대부분의 실수를 되돌릴 수 있게 설계됐습니다. 다만 명령마다 되돌리는 범위와 위험도가 다릅니다. restore 는 안전하지만 reset --hard 와 clean -fd 는 데이터를 진짜로 지웁니다.
이 레슨은 다섯 가지 되돌리기 명령을 상황별로 정리하고, 마지막 안전망인 reflog 를 다룹니다. 예제는 커밋 3개를 만든 저장소를 기준으로 모든 명령을 실제로 실행해 결과를 보여줍니다.