당신이 실수로 한 commit을 되돌리고 싶을 때, 쓸 수 있는 명령어
실수로 한 commit을 shortlog로 확인해보자
이 때 git reset을 사용해서 "실수로 커밋" 한 부분을 지울 수 있다.
이때 어떤 version의 commit을 단계를 어디만큼 되돌려줘야 할지를 지정해줘야 되는데, 가장 문안하게 쓰이는 게
git reset HEAD~1
여기서 HEAD는 맨 마지막 commit을(혹은 현재 지정된 위치) 가르킨다.
그리고 " ~1 " => 거기서 바로 전 단계로 돌아간다는 의미다.
응용해보면, " ~2 "는 두 단계 전 commit 버전으로 되돌아간다는 의미가 된다.
아무튼, 다시 돌아와서,
git reset HEAD~1 은 "실수로 커밋"을 바로 전 단계로 돌려줘~ 라는 의미가 된다.
단!! git reset HEAD~1은 commit이 풀린 것일뿐!!
"실수로 커밋"에서 수정된 파일들도 예전으로 되돌아간 것은 아니다.
또 한가지 주의사항은 git reset은 "실수로 커밋"을 commit 했던 기록 자체를 삭제한다. 다시 말해서, 사용하는데 주의가 필요하다.
=> 바로 이 commit 횟수가 줄어드는 문제 때문에, 혼자 사용하는 저장소가 아니라면, git reset은 협업용으로는 부적합하다!!
( 위에 그림은, 시각적으로 보는게 이해가 빠를 때가 있어서, 첨부해봤다. 그냥 reset을 쓰면, master와 내 컴퓨터의 commit 갯수가 다르구나... 이정도로 상황을 이해하고 넘어가면 된다. 혹시 그림이 이해가 안 된다면, 그냥 깔끔하게 무시하면 된다!! )
이외에도 명령어에 따라서
-- soft => git add 까지한 상태
-- mixed => add 도 안 한 상태 즉, untracked 상태
등을 reset 으로 설정해줄 수 있지만, 여기까지만으로도 충분하다고 판단해서 이 부분은 생략한다.
git reset 편 끝!!!
자료 출처 및 참고 자료
이번 블로그는 코드스테이츠의 강의 내용과 ZeroCho 블로그의 일부를 바탕으로 작성했으며, 그 어떠한 상업적 용도도 없음을 밝힌다.
https://www.zerocho.com/category/JavaScript
글 퀄리티 미쳤따리미쳤다