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 공식문서
'개발 팁 > 5분 지식' 카테고리의 다른 글
반응형 웹 폰트 크기 설정 (0) | 2022.07.11 |
---|
댓글