강의내용


Git에서 과거로 돌아가는 두 방식

  • reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다.
  • revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행합니다. 즉 수행했던 내역을 반대로 실행합니다. 추가했다면 삭제하고 삭제했다면 다시 추가 그래서 결국 이전으로 돌아감
    • 거꾸로 되돌린 내역도 남겨야 하는 경우
    • 특정 버전만 제거하고 이후 버전은 남겨야 하는 경우

1. 실습 전 내역 백업

  • .git 폴더를 복사해두기

    • 맥에서 숨김 파일 보기: command + shift + .
  • .git 폴더 없앤 다음 git 상태 확인해보기


2. reset 사용해서 과거로 돌아가기

아래 명령어로 커밋 내역 확인

git log

  • 되돌아갈 시점: Add team Cheetas의 커밋 해시 복사(앞부분 일부만 복사해도 가능)
  • :q로 빠져나가기 fb70a41fc6c9c8a1f3113ead7b0ed95640591dc9

git reset --hard (돌아갈 커밋 해시)

  • reset의 옵션(—hard 등)은 섹션 5에서 다룰 것

🎯 첫 커밋 시점으로 돌아가보세요.


3. reset 하기 전 시점으로 복원해보기

백업해 둔 .git 폴더 사용

  • .git 폴더 복원
  • git loggit status로 상태 확인
  • 아래 명령어로 현(마지막) 커밋 상태로 초기화

git reset --hard

  • 💡 뒤에 커밋 해시가 없으면 마지막 커밋을 가리킴

  • lions.yaml 삭제


4. revert 로 과거의 커밋 되돌리기

Add George to Tigers의 커밋 해시 구하기

아래 명령어로 revert

git revert (되돌릴 커밋 해시)

  • :wq로 커밋 메시지 저장

🎯 Replace Lions with Leopards의 커밋 되돌려보기

  • 이후 leopards.yaml 수정한 내역 때문에 충돌
    • git rm leopards.yaml로 Git에서 해당 파일 삭제

    • git revert --continue로 마무리

    • :wq로 커밋 메시지 저장

🎯 reset 사용해서 revert 전으로 되돌아가기

git reset --hard

commit

Git에서 commit(커밋) 한다는 것은 — 한마디로 — “지금 스테이징 바구니에 모아 둔 파일들의 모습을 사진처럼 찍어, 프로젝트 앨범(저장소)에 한 장 추가한다”는 뜻입니다. 이렇게 찍힌 사진(스냅샷)은 언제든 되돌아갈 ‘세이브 포인트’가 되어 주고, 팀원들과도 동일한 이력을 공유할 수 있게 해 줍니다.

💡 커밋해버리지 않고 revert하기

git revert --no-commit (되돌릴 커밋 해시) 그냥 전으로 되돌리는 것 뿐만 아니라 뭐 좀 더 추가하기 위해 사용

  • 원하는 다른 작업을 추가한 다음 함께 커밋
  • 취소하려면 git reset --hard

목적


궁금한 부분(애매한 부분)


답변 혹은 자료 수집


해야 할 일


관련 노트