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를 하자!
참고
*내용에 문제가 있을 경우 댓글 부탁드립니다!