본문 바로가기
Git

[Git] 과거 내역으로 돌아가는 방법

by snow_white 2022. 3. 14.

Git에서 프로젝트를 과거로 되돌리는 방법은 ResetRevert 두 가지가 있다.

 

Reset은 말 그대로 시간을 과거로 되돌리는 것이다.

Revert는 내역을 삭제하는 것이 아니라 변화를 거꾸로 수행하는 캡슐을 하나 넣음으로써 추가한 게 있으면, 삭제하고, 변경한 게 있으면 반대 행동을 한다는 것이다.

 

개발자들은 Git을 사용해서 코드를 공유하고 협업하는데 한 번 공유공간에 올라간 내용을 reset하면 충돌을 일으키게 되기 때문에 한 번 공유된 것은 revert 방식으로 되돌린다.

 

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

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

git log
  • 되돌아갈 시점: Add team Cheetas의 커밋 해시 복사

Add team Cheetas로 commit했던 시점으로 돌아가기 위해 log를 찍어보고, 돌아갈 해시를 de206a033 (5~6글자정도) 복사한다.

  • :q로 빠져나가기
git reset --hard (돌아갈 커밋 해시)
  • reset의 옵션(--hard 등)은 섹션 5에서 다룰 것

과거로 돌아가기

 

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

백업해 둔 .git 폴더 사용

  • .git 폴더 복원
  • git log, git status로 상태 확인
  • 아래 명령어로 현 커밋 상태로 초기화
git reset --hard
  • 뒤에 커밋 해시가 없으면 마지막 커밋을 가리킴
  • lions.yaml 삭제

 

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

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

아래 명령어로 revert

git revert (되돌릴 커밋 해시)
  • :wq로 커밋 메시지 저장

 

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

 

커밋해버리지 않고 revert하기

git revert --no-commit (되돌릴 커밋 해시)
  • 원하는 다른 작업을 추가한 다음 함께 커밋
  • 취소하려면 git reset --hard

댓글