저번 포스팅에서는 커밋하기전의 내용을 되돌리는 방법에 관하여 이야기하였습니다.
이번에는 최신 커밋을 되돌리기, 특정 커밋으로 되돌리는 방법에 관하여 포스팅하겠습니다.
최신 커밋 되돌리기
test.txt 파일에 "ver4" 를 추가하고 "ver4" 커밋메시지와 커밋하여 버전을 생성하였습니다.
git log 명령어를 사용하여 기록을 확인해보았습니다.
"ver4" 커밋메시지와 최신버전이 생성이 되어있는 것을 볼 수 있습니다.
git reset HEAD^ 명령어를 사용하였습니다.
※ ^(shift + 6)
git reset HEAD^ 명령어는 최신 커밋을 스테이징을 하기 전 상태로 되돌아가는 명령어 입니다.
Unstaged changes after reset: 메시지의 의미는 커밋이 취소되고 스테이지에서 내려갔다는 의미입니다.
옵션 | 설명 |
--soft HEAD^ | 최신 커밋을 하기 전 상태로 작업 트리를 되돌립니다. |
--mixed HEAD^ | 최신 커밋과 스테이징 하기 전 상태로 작업트리를 되돌립니다. 옵션 없이 git reset 명령어를 사용할 경우 이 옵션을 기본으로 작동합니다. |
--hard HEAD^ | 최신 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌립니다. 이 옵션으로 되돌린 내용은 복구할 수 없습니다. |
특정 커밋 되돌리기
위의 내용은 가장 최신의 커밋을 이전의 커밋으로 되돌리는 방법에 대하여 이야기 했습니다.
특정 커밋으로 되돌리는 방법에 관하여 이야기 하겠습니다.
1. resetTest 문서 파일을 새로 하나 생성하였습니다.
2. resetTest 문서 파일 안에 "reset test1"을 입력후에 저장하였습니다.
3. add하고 "reset test1" 커밋메시지와 commit하여 버전을 생성하였습니다.
1. resetTest.txt 문서 파일 안에 "reset test2"를 입력하고 저장하였습니다.
2. "reset test2" 커밋메시지와 commit하여 버전을 생성하였습니다.
위의 과정을 반복하여 reset test5까지 만들겠습니다.
그리고 reset test3 커밋메시지가 있는 커밋으로 돌아가려 합니다.
reset test3의 커밋해쉬를 복사합니다.
※Git Bash에서 해당 내용을 드래그하고 마우스 오른쪽 버튼을 클릭하면 복사가 됩니다.
입력해야할 곳으로 위치한 후에 다시 마우스 오른쪽 버튼을 클릭하면 붙여넣기가 됩니다.
마우스 오른쪽 버튼을 사용할 수 없다면 Ctrl + C , Ctrl + V 를 사용하여 복사, 붙여넣기 합니다.
git reset --hard 커밋해쉬를 입력하였습니다.
HEAD is now at 커밋해쉬 커밋메시지가 등장합니다.
git log 명령어를 사용하여 확인해보았습니다.
reset test4 , reset test5 커밋이 삭제되고 복사했던 커밋이 최신 커밋이 되었습니다.
※git reset ABCDEF 라고 가정하였을때 git reset 명령어는 ABCDEF 커밋 이후의 커밋을 삭제하고 ABCDEF 커밋으로 이동하게됩니다.
cat 명령어를 사용하여 내용을 확인해보면 "reset test3"가 나오는 것을 볼 수 있습니다.
'Git' 카테고리의 다른 글
#12 Git(깃) Branch 생성 (0) | 2021.01.12 |
---|---|
#11 Git(깃) git revert(삭제하지 않고 커밋 되돌리기) (2) | 2021.01.11 |
#9 Git(깃) git restore(작업 되돌리기) (1) | 2021.01.10 |
#8 Git(깃) 커밋메시지 수정하기 (3) | 2021.01.09 |
#7 Git(깃) tracked, untracked file (5) | 2021.01.08 |