[Git] reset vs revert

SexyWoong·2024년 9월 17일

과거 '우리 이거 삭제하지 말자' 프로젝트를 진행하면서 처음으로 git을 사용해 보았습니다. 그전에는 add, commit, push 같은 기본 기능만 사용했고, 다른 기능들은 익숙하지 않아 어려움을 겪었습니다. 현재 git을 사용하지 않은 지 꽤 오래되어 다시 정리하고 공부하려고 합니다.

reset: 과거로 돌아간 후 이후 내역은 삭제한다.

먼저 reset에 대해서 알아보자.
터미널에 git log를 입력하면 사진과 같이 로그를 확인할 수 있다.

돌아가고 싶은 커밋의 Hashcode를 복사하여, git reset --hard (hashcode) 를 입력하면 해당 커밋으로 돌아갈 수 있다.

revert: 되돌리기 원하는 시점의 커밋을 거꾸로 실행한다.

revert의 경우, 돌이키고 싶은 커밋내역에 대한 반대작업을 해준다. 예를 들어, 돌이키고 싶은 커밋에서 'hello'라는 문구를 작성했다고 가정하자. git revert (hashcode)를 작성해주면, 'hello'라는 문구가 삭제되는 커밋이 새로 생성된다.

주의사항

협업 시에는 reset을 사용하는 것이 일반적으로 권장되지 않습니다. 그 이유는 reset이 커밋 기록을 재작성하거나 삭제하여 저장소의 히스토리를 변경하기 때문입니다. 이렇게 하면 다른 팀원들과의 작업 내용이 일치하지 않아 충돌이나 혼란이 발생할 수 있습니다.

반면에 revert는 특정 커밋의 변경 사항을 되돌리는 새로운 커밋을 생성합니다. 이는 기존의 히스토리를 보존하면서도 변경 사항을 취소할 수 있어, 협업 환경에서 안전하게 이전 상태로 돌아갈 수 있는 방법입니다.

따라서 팀과 함께 작업할 때는 revert를 사용하여 변경 사항을 되돌리는 것이 좋습니다.

profile
함께 있고 싶은 사람, 함께 일하고 싶은 개발자

0개의 댓글