커밋하고 추가 작업을 하다가~~~~~
코드가 꼬여버려서 그 전 커밋으로 돌아가고 싶을 때, 추가 작업코드는 다 날아감 주의
1. 현재 작업 중인 브랜치에서 특정 커밋으로 돌아가고 싶다면 git checkout을 사용
git checkout <커밋 해시>
하고 git branch로 확인해보니까 무슨 브랜치로 이동이 됨. - 원래 seunghee 브랜치에서 작업하고 있었음.
(해당 커밋의 상태로 "detached HEAD" 상태로 이동. 즉, 기존 브랜치는 그대로 남아 있고, 해당 커밋을 임시로 볼 수 있음.)
근데 이전 커밋의 상태로 돌아가있지는 않았음. 왜냐 ?
"detached HEAD" 상태에서 특정 커밋으로 이동했더라도, 해당 커밋의 변경사항이 현재 작업 디렉토리에 자동으로 적용되지는 않습니다. 라고 하네요
2. 이 경우, 원하는 커밋의 상태로 돌아가려면
git reset --hard <커밋 해시>
현재 브랜치에서 원하는 커밋으로 강제로 리셋, 이렇게 하면 해당 커밋 이후의 모든 변경사항이 사라진다. ..
이후에 seunghee 브랜치로 돌아오니까 seunghee 브랜치에도 변경사항이 사라져있었음(커밋 안했음).
그럼 왜 임시(?)브랜치로 이동해서 reset을 하지? 그냥 seunghee 브랜치에서 바로 git reset 하면 되는거 아닌가? 해서 물어봤는데
ㅋ 진작에 알려주지 지피티야 !!!
그냥 바로 seunghee 브랜치에서 git reset을 했어도 됐었다
근데 이 경우는 진짜 필요없는 코드일 때 reset으로 날려버리면 되는 거 (중요한 코드면 큰일나겠죠 ㅎ)
결론
이전 커밋으로 돌아가고 싶으면 git reset --hard <커밋해시>
+ 커밋 이후 작업물 다 날아가도 상관없을 때. ㅎ