깃 리셋 hard 옵션

깃을 이용하여 개발할 때, 이전 커밋으로 돌아가야 하는 경우가 있습니다. 그런 경우 git reset으로 돌아 갈 수 있습니다. 이 리셋 명령어에 다양한 옵션을 줄 수 있습니다.

깃 리셋 hard 옵션

이 글에서는 제가 주관적으로 자주쓰는 명령어 옵션인 hard 옵션에 대해서 설명하도록 하겠습니다.

기본적으로 reset 명령어는 이전 커밋으로 돌아가기 위한 명령어입니다. 순차적으로 리셋에 관한 예제를 한번 만들어 보겠습니다.

git reset 예제

  • 텍스트 파일 생성하기
echo "테스트 문장." > test.txt
  • Stage 및 commit 하기
git add .
> git commit -m "reset test commit"

이제 다음 명령어로 깃 로그를 찍어 보겠습니다.

git log

commit 83d2c582abd55671b3a4d2d63ffb60c09ab8c726 (HEAD -> master)
Author: test <test@github.com>
Date:   Sun Feb 23 10:42:55 2020 +0900

    reset test commit

첫 번째 커밋이 생겼습니다.

  • 텍스트 파일 내용 변경하기.
echo "second line" >> test.txt

텍스트 파일안에 두 번째 줄을 추가합니다.

  • 다시 또 Stage 및 Commit을 합니다.
git add .
> git commit -m "reset second test commit"
  • 깃 로그 확인하기
git log

// 두번째 커밋
commit aed5befb787a9ccf65547336d4eb73099623c3ea (HEAD -> master)
Author: test <test@github.com>
Date:   Sun Feb 23 10:47:34 2020 +0900

    reset second test commit

// 첫번째 커밋
commit 83d2c582abd55671b3a4d2d63ffb60c09ab8c726
Author: test <test@github.com>
Date:   Sun Feb 23 10:42:55 2020 +0900

    reset test commit
  • 이전 커밋으로 리셋하기
git reset HEAD~

다시 로그를 보겠습니다.

git log

commit 83d2c582abd55671b3a4d2d63ffb60c09ab8c726
Author: test <test@github.com>
Date:   Sun Feb 23 10:42:55 2020 +0900

이전 커밋으로 돌아오는 것에 성공했습니다. 그리고 git status 명령어를 통해 상태를 보도록 하겠습니다.

git status

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   test.txt

no changes added to commit (use "git add" and/or "git commit -a")

UnStaged 상태로 돌아왔습니다. 즉, 두 번째 커밋을 하기 전 변경 사항이 남아있다는 이야기 입니다.

테스트 문장. <-- 첫 번째 커밋
second line <-- 두 번째 커밋 하기 전의 변경사항

hard 옵션

방금 전, reset 명령어에서 두 번째 커밋 하기 전의 변경사항도 없게 reset을 하고 싶은 경우가 있습니다. 그런 경우, 이 hard 옵션을 주시면 됩니다.

# 두 번째 커밋까지 완료된 상태에서
git reset --hard HEAD~

이런 식으로 리셋을 하게 되면, 변경 사항도 없게 reset을 할 수 있습니다.

맺음

간단하게 git의 reset 명령어와 그 옵션들에 대해서 알아보았습니다. 혹시 궁금하신 점이나 이상한 점이 있으시다면 댓글 부탁드리겠습니다.

감사합니다.

Buy me a coffee
글이 도움이 되셨다면, 커피 한 잔만 사주세요!
Comments
Copied to clipboard