Study/Git 사용기

[Git] 특정 commit 상태로 돌려 놓는 법

치피킨자 2020. 6. 26. 02:24

여러 사람이랑 협업하면서 개인 branch로만 작업을 하다가 오랜만에 공용 브랜치의 작업물을 받게 되면

Merge Conflict의 폭탄이 떨어질 수도 있다. 

 

그렇게 충돌하는 것을 하나하나 해결하고 내 프로젝트를 열었을때 아 망했다.... 싶을 때가 있다! 

(나만 그런건 아니겠지....)

 

시간을 돌려서 예전의 작업물 혹은 커밋전으로 되돌리고 싶다고 느낄 때 쓰는 방법이 있다.  

 

지나간 시간을 되돌리는 건 아무도 못하지만 지나간 작업물로 되돌릴 수는 있다!

 

 

바로 git reset 사용하기! 

git reset

reset 명령어는 단계별로 세가지 방법이 있는데,  

 

1. HEAD를 변경해주는 soft (파일 변경 x)

git reset --soft 커밋코드

 

2. git add 상태로 되돌리는 mixed (파일 변경 x)

git reset --mixed 커밋코드

   혹은

   git reset 커밋코드

git reset 커밋코드

 

3. 특정 commit 이후의 모든 수정사항을 무시하고 작업파일까지 되돌리는 hard 

git reset --hard 커밋코드

 

reset 명령어는 기존의 커밋을 없애면서 실행되는 것이라 신중하게 사용할 필요가 있는 것 같다.

(reset을 취소하는 명령어가 있는 지는 확인하지 못했다.) 

 

master 브랜치만 있는 상황에서 무턱대고 reset을 써버리면 작업물들이 날아갈 수 있기 때문에....

 

이번에 나는 개인 브랜치에 다른 브랜치의 커밋을 pull하는 과정에서 다시 되돌리려고 했기 때문에 --hard를 써도 문제가 없었다. 

 

 

오늘의 교훈 

자주 pull & push를 하자!

 

 

참고

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0

 

 

 

 

*내용에 문제가 있을 경우 댓글 부탁드립니다!