본문 바로가기

국비지원_핀테크

3일차_ 커밋된 내용을 복구, 리셋하는 방법 ( reset, revert )

 

 

커밋된 내용을 복구, 리셋하는 방법

 

 

 

 

 

 

테스트용 디렉토리와 파일 생성

test 파일 생성 > 내용 1111 추가

 

add, commit

 

test 파일에 2번째 줄 2222 내용 추가 후 add, commit

 

test 파일에 3번째 줄 3333 내용 추가 후 add, commit

 

git reset --hard : 기록과 변경된 내용까지 모두 삭제

reset --hard 명령어로 로그의 번호를 입력하면 로그 기록도 삭제하며 내용도 되돌린다

※ 만약 저 시점 이후에 파일이 추가로 생성되거나 작업한 내용이 있어도 모두 기록된 시점으로 돌아가기 때문에 삭제된다 ※

 

 

 

 

 

 

 

 

 

 

 

다시 테스트용 파일 세팅하여 add, commit 진행

 

git reset --soft : 변경된 내용은 삭제하지 않지만 커밋 로그만 삭제

--soft 옵션을 사용하면 커밋 로그만 날라가며 작업 내용은 날아가지 않는다

※ 커밋 로그만 삭제하므로 리셋 시점 이후에 파일을 새로 생성 및 작업했다 하더라도 날아가지 않는다 ※

 

 

 

 

 

 

 

 

 

 

 

다시 테스트용 파일 세팅

 

git reset --mixed : 변경된 내용은 삭제하지 않지만 커밋 로그와 add를 삭제

--mixed 옵션도 로그만 삭제되나 --soft 와 차이점은 add 도 풀린다는 점이다

※ 커밋 로그만 삭제하므로 리셋 시점 이후에 파일을 새로 생성 및 작업했다 하더라도 날아가지 않는다 ※

 

 

 

 

 

 

 

 

 

 

테스트 파일과 커밋 로그 다시 세팅

 

git revert  : 기재한 로그 시점 바로 이전으로 내용만 되돌리고 로그는 유지

3333 저장 시점의 커밋 로그 번호를 넣었으나 2222 저장 시점으로 돌아갔음 ( 기재한 커밋 로그 시점의 바로 직전으로 돌아가기 때문에 2222 저장 시점으로 돌아간 것, 만약 1111 저장 시점으로 돌아가고 싶다면 2222 저장 시점의 커밋 로그 번호인 bb7844c 를 입력해줘야 한다 )

 

 

 

 

 

 

※ revert 를 사용할때 2단계 이상 돌릴때 발생하는 오류 ※

revert 를 사용해서 로그를 2단계 이전으로 돌리려 했더니 오류 발생 > 오류가 발생된 test.txt 를 직접 vi 로 편집하여 커밋하여 작업

 

문제가 생긴 test.txt 파일 vi 편집기로 직접 편집한 모습

 

 

커밋 로그는 그대로 남고 내용은 2단계 이전으로 돌아간 모습 ( vi 로 직접 파일을 편집하고 커밋했기 때문에 커밋된 로그도 하나가 추가되었음 )

 

 

 

 

 

 

 

 

 

 

 

728x90