Git reset

조 은길·2021년 2월 22일
1
post-thumbnail

- git reset

당신이 실수로 한 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

https://www.youtube.com/watch?v=VUuGa1QFmcA

https://www.geeksforgeeks.org/ultimate-guide-git-github/

profile
좋은 길로만 가는 "조은길"입니다😁

2개의 댓글

comment-user-thumbnail
2022년 3월 12일

글 퀄리티 미쳤따리미쳤다

1개의 답글