[git] 이전 커밋/특정 커밋으로 되돌아가기 (reset, log --oneline)

구민지·2023년 9월 13일
0
post-thumbnail

Git reset과 revert는 협업 중 이전 커밋으로 되돌아가고 싶을 때 사용할 수 있는 명령어이다..!

그 중에서도 reset 명령어를 사용해서 이전 커밋으로 돌아가는 법에 대해 알아보자 😀✨

✔️ log로 돌아가고 싶은 시점을 찾아보자

git log --oneline

git log를 보는 방법도 여러가지가 있던데 필자는 commit 이력 중 커밋 ID 와 타이틀 메시지만 한줄 형태로 조회 가능한 git log --oneline을 사용했다.


그러면 이렇게 커밋 ID와 타이틀 메시지만 한 줄로 뜬다 위에서부터 최근한 커밋이다.

✔️ 되돌리기


빨간색 : 없애고 싶은 커밋
파란색 : 돌아가고 싶은 상태

빨간색을 없애고 파란색으로 돌아가고 싶다 😀

git reset --hard [돌아가고싶은 커밋 해쉬 값]

git reset에는 3가지 옵션이 있다.
1. soft : 커밋만 취소
2. mixed : 커밋 취소 + git add(스테이징)도 취소 (mixed가 default이다)
3. hard : 커밋 취소 + git add(스테이징) 취소 + 변경사항 아예 없앰
(hard는 위의 옵션들과 달리 파일 내용을 완전히 삭제 시키기 때문에 주의해서 사용해야한다!)

필자는 아예 변경사항까지 없애고 싶어서 --hard 를 사용했다. 돌아가고 싶은 파란색 상태에 해당하는 해쉬값을 넣어줬다.

여기서 "HEAD is now at f1..."라는 메시지가 보이는데 여기서 HEAD는 현재 브랜치를 가리키는 포인터이다.

✔️ reset 결과 확인

다시 git log --online 으로 로그를 확인한다.

제거하고 싶었던 빨간색 상태는 삭제되고 HEAD가 파란색 상태를 가리키고 있는 걸 확인할 수 있다.

✔️ 원격 저장소에 변경사항 push

그럼 마지막으로 이 상태를 원격 저장소에 강제로 push해주면 끝이다!

git push -f origin master

0개의 댓글