본문 바로가기
개발 팁/5분 지식

깃 커밋 되돌리기 명령어

by canoe726 2022. 12. 30.
728x90
git reset [옵션] HEAD~[N]

 

프로젝트 작업 도중 실수로 커밋 메시지를 잘못 입력하거나 최근 커밋을 되돌리고 싶을 때가 있는데 그럴 때 사용하면 되는 명령어 입니다.

 

 

커밋을 어떤 옵션으로 되돌릴까?

 

우리가 로컬 변경 내역을 원격 저장소로 등록하기 위한 과정은 크게 4가지로 나눌 수 있습니다.

 

파일 수정 (Change) -> git add (Stage) -> git commit -> git push (원격 저장소 등록)

 

위 과정을 reset 명령어와 옵션으로 순차적으로 되돌린다고 생각하시면 됩니다.

 

 

위에 표시된 명령어에서 골치아픈 부분은 [옵션] 부분입니다.

 

3가지만 기억하면 됩니다.

 

 

1. --soft

 

git reset --soft HEAD~

 

가장 마지막 커밋을 Stage (Staged Changes) 상태로 되돌린다. (= git commit 명령어만 되돌림)

 

 

2. --mixed (기본값, 생략 가능)

 

git reset [--mixed] HEAD~

 

가장 마지막 커밋을 Changes 상태로 되돌린다. (= git commit, git add 명령어를 되돌림)

 

 

3. --hard

 

git reset --hard HEAD~

 

가장 마지막 커밋을 Changes 상태로 되돌린다. (= git commit, git add 명령어 되돌림 + 변경한 파일 삭제)

 

* 가장 주의해서 사용해야 하는 명령어 입니다.

 

 

추가적으로 얻어갈 내용

 

1. `HEAD~` 명령어 뒤에 숫자를 붙이면 N개 까지 커밋을 되돌릴 수 있습니다.

 

2. `git rest --hard HEAD~` 명령어를 수행한 다음에 `git push -f origin [branch name]` 명령어를 수행하면 원격 저장소에서 커밋을 완전히 제거할 수 있습니다.

 

3. `git reset [파일명]` 명령어를 사용하면 정확하게 원하는 파일만 Stage -> Change 상태로 변경할 수 있습니다. (git add 와 정반대로 행동합니다.)

 

 

 

--soft, --mixed, --hard

 

 

 

 

- Reset 명령어에 대해서 더 알고 싶다면?

 

1. Git 공식문서

 

Git - Reset 명확히 알고 가기

지금까지 reset 명령을 실행하는 기본 형태와 사용 방법을 살펴봤다. reset 명령을 실행할 때 경로를 지정하면 1단계를 건너뛰고 정해진 경로의 파일에만 나머지 reset 단계를 적용한다. 이는 당연한

git-scm.com

 

728x90

'개발 팁 > 5분 지식' 카테고리의 다른 글

반응형 웹 폰트 크기 설정  (0) 2022.07.11

댓글