세번째 사진을 찍고 commit을 했는데 commit 메세지를 잘못입력해서 바꾸고 싶다면 어떻게 해야할까?
git reset을 사용하면 된다. reset에는 3가지 종류가 있다. 하나씩 살펴보자.
reset soft는 사진첩에서 사진만 지우는 것이다.
reset soft를 사용하면 head가 이전으로 되돌아간다.
commit을 완료했는데 commit message를 변경하고 싶을때 주로 사용한다.
git reset —soft 606c
두번째 사진을 저장되었던 그 때로 soft reset 한다.
git log를 찍으면 세번째 commit이 사라진 것을 볼 수 있다.
git status를 찍으면 세번째 사진이 add는 되어있지만, commit이 되어있지 않는 상태로 남아있다.
reset mixed를 사용하면 사진첩에서 사진을 지우고, 사진까지만 삭제한다.
commit을 완료했는데 test3.txt에 내용을 추가해서 다시 commit하고 싶을때, 즉 작업 내용 변경이 필요할때 사용한다.
git reset —middle 606c
마찬가지로 두번째 사진을 저장되었던 그 때로 reset해야 한다.
git log를 찍으면 세번째 commit이 사라진 것을 볼 수 있다.
status를 찍어보면, 변경사항은 감지했지만 사진은 찍기 전으로 되돌아가 있는 것을 확인할 수 있다.
reset hard는 사진첩에서 사진을 지우고, 사진을 삭제하고, 변경사항도 모두 삭제한다. 파일을 변경하기 전으로 되돌리고 싶을때 사용한다.
git reset —hard 606c
마찬가지로 두번째 사진을 저장되었던 그 때로 reset해야 한다.
head가 이전을 가리키고 있고, 생성했던 test3.txt까지 모두 삭제 된 것을 확인할 수 있다.
그런데 상사가 삭제한 test3.txt파일(삭제한 추가했던 내용)을 다시 불러오라 하면 어떻게 해야할까? git reflog를 사용하면 된다.
git reflog
git reflog를 하면 내가 한번이라도 commit했던 기록들이 모두 볼 수 있다.
git reset —hard 8bf5
이제 reset을 하면 test3.txt를 commit했던 그 시점으로 돌아온 것을 확인할 수 있다.
그리고 test3.txt파일도 온전히 복구되었다.
git commit --amend -m "recent commit message change"
이렇게 하면 가장 최근 commit messag만을 reset하지 않고 바꿀 수 있다.