[Git] git reset 으로 커밋 취소하기

천둥상어

·

2024. 7. 19. 14:55

반응형

프로젝트 회의에서 어떠한 기능이 필요없다고 결정이 되었다.

그래서 개발자는 관련 소스를 모두 지우고 커밋 했다.

그런데 잠시 후 그 기능을 사용하기로 결정이 바뀌었다.

 

이 경우 checkout 으로 삭제전 커밋 해시로 되돌리고 커밋하면 될것이다. 

하지만 이 과정이 이력으로 남게 된다.

 

만약 이력을 남기지 않고 삭제전 상태로 되돌리고 싶다면

git reset으로 브랜치의 참조 커밋을 바꿔주면 된다.

이렇게 되면 참조 커밋을 마지막 커밋으로 인식하게 되면서

그 후의 이력은 모두 무시된다.

 

git reset 커밋 취소(최신 커밋으로 재설정)

아래 로그에서 해시값(1c75ca5)는 test 폴더를 지운 마지막 커밋이다.

이전 해시값(7c455b9)을 최신 커밋으로 재설정 해본다. 

 

git reset --hard 7c455b9

 

실행하면 참조하는 해시값이 바뀌었다고 나온다.

 

로그를 출력하면 참조하는 해시값이 마지막 커밋이 된것을 확인할 수 있다.

 

참고로 1c75ca5 커밋이 삭제된 것은 아니다.

해시값만 기억하고 있다면 이 역시 git reset으로 되돌릴수 있다.


개인적인 생각이지만...

커밋 이력을 남기고 싶지 않다는 이유로 이렇게 사용할 필요가 있나 싶다.

 

내 경험상 롤백을 하게 된다면 그 역시 업무이고 메시지를 작성해서

이력을 남기는 게 맞다.

 

롤백이 자주 일어난다면 업무 프로세스에 문제가 있는 것이므로

이런한 이력을 바탕으로 개선을 건의해야 한다.

 

반응형