오늘 방문 /누적 방문 /완성한 레슨 소개 ↗
SECONDTEAM
Git·GitHub
🔀 레슨

되돌리기 감각 — 어디까지 무를 수 있나

방금 실수, 어제 실수, 지난주 실수. 각각 되돌리는 방법이 달라요. 감각만 잡아요.

① 오늘의 미션
"이 양념, 망했다…"
우리동네 반찬가게 사이트에 '오늘의 양념 비율'을 실험삼아 바꿔봤어요. 간장 코드를 손대고, 색도 바꾸고, 문구도 고쳤는데 — 전부 마음에 안 들어요. 손댄 게 너무 많아서 어디부터 되돌려야 할지 막막합니다.

지난 레슨에서 log·diff읽는 법을 배웠죠. 오늘은 무르는 법 — 후회했을 때 안전하게 되돌리는 감각을 잡습니다.

설명을 따라 진행하면, 여기서 직접 쳐보게 돼요 👇
~/my-shop
$ _
📚 「되돌리기 감각 — 어디까지 무를 수 있나」 레슨 내용 전체 텍스트로 훑어보기
"이 양념, 망했다…"
우리동네 반찬가게 사이트에 '오늘의 양념 비율'을 실험삼아 바꿔봤어요. 간장 코드를 손대고, 색도 바꾸고, 문구도 고쳤는데 — 전부 마음에 안 들어요. 손댄 게 너무 많아서 어디부터 되돌려야 할지 막막합니다.

지난 레슨에서 log·diff읽는 법을 배웠죠. 오늘은 무르는 법 — 후회했을 때 안전하게 되돌리는 감각을 잡습니다.

망친 상황은 다 같아 보여도, '얼마나 진행됐는지'에 따라 무르는 방법이 달라요. 핵심 기준은 뭘까요?
맞아요. 되돌리기 방법은 '후회한 시점'에 따라 갈려요. ①아직 저장(커밋) 안 함 ②방금 커밋함 ③한참 전 어떤 상태로 돌아가고 싶음 — 이 세 가지 처방을 차례로 봅니다.

방금 양념 코드를 잔뜩 고쳤지만 아직 커밋(저장) 전이에요. 이 경우가 가장 간단해요.

마지막 저장 지점으로 되돌리기
커밋은 '사진을 찍어둔 순간'이라고 했죠. 아직 안 찍은 변경은 마지막으로 찍어둔 사진으로 되돌리면 깔끔하게 사라져요.
명령으로는 git restore 파일이름 — "이 파일, 마지막 커밋 상태로 돌려놔" 라는 뜻이에요.

⚠️ 단, 되돌린 변경은 영영 사라져요. 아직 사진(커밋)에 안 담긴 거라 복구할 데가 없거든요. 그래서 평소에 자주 커밋하는 게 안전망이에요.

명령을 외울 필요 없어요. Claude에게 그냥 말하면 돼요. 가게 폴더에서 Claude를 켜고 부탁해봐요.

양념 비율 실험한 거 다 마음에 안 들어. 아직 커밋은 안 했어. 이 파일 아까 커밋했던 상태로 되돌려줘 — 방금 망친 파일을 아까 상태로 되돌려달라고 말해요
이렇게 "아까 상태로 되돌려줘" 한마디면 충분해요. Claude가 상황(커밋 전인지 후인지)을 보고 알맞은 명령을 골라줍니다.

이번엔 한 발 늦었어요. 망친 양념을 이미 커밋(저장)해버렸어요. 사진을 찍어버린 거죠. 이건 어떻게 무르죠?

지우지 말고, '취소 도장'을 찍는다
가장 안전한 방법은 git revert 예요. 잘못된 커밋을 지우는 게 아니라, 그 변경을 되돌리는 새 커밋을 하나 더 얹는 방식이에요.
장부에 비유하면 — 잘못 적은 줄을 칼로 긁어내는 게 아니라, 아래에 "위 항목 취소"라고 한 줄 더 적는 거예요. 역사가 그대로 남아 안전해요.
이미 커밋한 걸 무르는 두 가지 마음가짐을 비교해봐요.
🗑️ 기록을 지워버리기: 망친 커밋을 역사에서 삭제. 깔끔해 보이지만, 이미 남들과 공유한 기록이면 충돌·사고가 나기 쉬워요. 초보엔 위험.
🧾 revert — 취소 커밋 얹기: 망친 커밋은 그대로 두고 "이걸 취소함" 커밋을 하나 더. 역사가 정직하게 남고, 공유된 상태에서도 안전해요. 기본은 이쪽.

방금 커밋한 양념 변경을 git revert로 되돌렸어요. 그 다음 git log로 히스토리를 보면 어떻게 보일까요?

맞아요. 망친 커밋은 증거처럼 남아있고, 그 위에 그것을 취소하는 새 커밋이 하나 더 쌓여요. '실수했고, 되돌렸다'는 이야기가 솔직하게 기록되는 거죠. 이게 revert가 안전한 이유예요.

마지막 상황. 며칠 전, 가게가 멀쩡하던 그 시점으로 돌아가고 싶어요. 그 사이 커밋이 여러 개 쌓였는데도요.

먼저 '언제로'를 찾는다
지난 레슨의 git log로 히스토리를 훑어서, 돌아가고 싶은 그 커밋을 찾아요. 각 커밋엔 고유한 이름표(영문·숫자 코드)가 붙어있죠.
그 시점을 정했으면 — 직접 명령을 외우기보다 Claude에게 "이 시점으로 되돌려줘"라고 맡기는 게 가장 쉽고 안전해요.

실제로 되돌리는 방식은 상황에 따라 달라요(취소 커밋을 쌓을지 등). Claude가 그 판단까지 대신 해줍니다.

먼저 히스토리를 보고, 돌아가고 싶은 시점을 Claude에게 말해봐요.

git log --oneline — 히스토리를 펼쳐 어디로 돌아갈지 본다
'인기 반찬 3개 첫 페이지 추가'했던 시점으로 가게를 되돌리고 싶어. 안전한 방법으로 해줘 — 멀쩡하던 시점으로 되돌려달라고 맡긴다
핵심은 "언제로 돌아갈지"만 정하고, 방법은 Claude에게 맡기는 것. 히스토리를 읽는 눈만 있으면 돼요.
존재만 알고, 손대지 말 것
검색하다 보면 git reset --hard 라는 강력한 명령을 보게 돼요. 이건 변경과 커밋을 흔적도 없이 날려버려요. 빠르지만, 잘못 쓰면 되돌릴 수 없는 사고가 나요.
초보의 안전 원칙
· 직접 reset --hard를 치지 않는다
· 되돌릴 땐 "~로 되돌려줘"라고 Claude에게 말한다 — Claude는 안전한 방법을 우선 골라요
· 불안하면 되돌리기 전에 "지금 상태 일단 커밋해줘" 한마디로 안전망을 먼저 친다

되돌리기에서 가장 중요한 건 명령 암기가 아니라 'AI에게 어떻게 시키느냐'예요. 망친 양념 파일을 무르고 싶을 때, Claude에게 건넬 가장 자연스러운 한마디를 채워보세요.

좋아요! "이 파일 아까 상태로 되돌려줘" 같은 말이면 충분해요. '아까/이전/원래' 어떤 표현이든 OK. Claude가 커밋 전인지 후인지 보고 restore·revert 중 알맞은 걸 골라줘요. 당신은 '무엇을 원하는지'만 말하면 됩니다.

마지막으로, 상황 설명을 통째로 던지고 판단까지 맡겨봐요. 이게 실전에서 가장 자주 쓰는 방식이에요.

양념 실험이 다 망했어. 이미 커밋도 했는데 그 전 멀쩡하던 가게로 돌아가고 싶어. 기록은 지우지 말고 안전하게 되돌려줘 — 상황을 그대로 설명하고 안전하게 무르도록 맡긴다
명령 하나 안 외우고도 안전하게 무르기 성공! 상황을 솔직히 설명하고, 안전한 방법을 부탁하는 것 — 이게 되돌리기 감각의 전부예요.
한 줄로
되돌리기는 '후회한 시점'에 따라 갈려요 — ①아직 커밋 안 함 → 마지막 저장으로(restore) ②방금 커밋 → 취소 커밋 얹기(revert) ③한참 전 → 그 시점 골라 안전하게. 명령을 외우는 대신 "아까 상태로 되돌려줘"라고 Claude에게 맡기면 돼요. 위험한 reset --hard는 손대지 않기.
다음 레슨에서
지금까지 되돌리기는 전부 내 컴퓨터 안의 일이었어요. 그런데 컴퓨터가 망가지면 가게 기록도 같이 사라지겠죠? 다음 'GitHub란 — 코드의 클라우드'에서, 가게를 온라인 금고에 백업하는 법을 배웁니다. 가게는 계속 자랍니다. 🌱