[Git] 수정, 커밋 되돌리기 - git reset
Git

[Git] 수정, 커밋 되돌리기 - git reset

728x90

출처 - https://zeuskwon-ds.tistory.com/124

Git Reset

내용을 수정하다가 이전 commit으로 돌아가고 싶을 때, 주로 Git reset을 사용한다.

reset 명령어에는 hard, soft 등과 같은 옵션들이 있는데 본인이 어떻게 reset하고 싶은지에 따라서 옵션을 다르게 주면 된다.

이번 포스팅에서 git diff, log로 수정 및 커밋사항을 확인하고, git reset을 활용해 이전으로 되돌리는 방법을 알아보자

  • git diff

https://zeuskwon-ds.tistory.com/124

 

[Git] git diff 사용하기

git diff 란? 파일간의 어떤 내용이 변경되어는지 차이점을 비교하기 위해 사용한다. Working Directory와 Staging Area간의 비교도 가능하고 Commit간의 비교, branch간의 비교도 가능하다. 주로 VScode같은 툴

zeuskwon-ds.tistory.com

git diff에 대한 자세한 내용은 위 포스팅 참고

▷ git reset <option>

--hard

git reset --hard

--hard 명령어로는 commit을 되돌릴때 주로 사용한다.

그래서 사용 후 staging area와 working directory가 전부 바뀐다.

git diff 명령어로 수정사항을 확인

git reset --hard HEAD^ 명령어를 사용해서 이전 commit으로 수정사항을 되돌림

되돌린 후 git diff로 다시 확인해보면 수정사항이 없어진것을 볼 수 있다.

--mixed

git reset --mixed

mixed는 수정된 코드를 working directory는 그대로 두고 staging area에서 뺄 때 주로 사용한다.

git log로 이전 커밋 확인

'resettest'라는 커밋내역을 확인하고

git reset --mixed HEAD^ 명령어를 실행시키면

log를 확인하면 커밋내역이 없어진것을 확인할 수 있고

hard와 다르게 로컬 코드는 이전으로 돌아가지않고 그대로인 것을 볼 수 있다.

--soft

git reset --soft

soft는 가장 잘 안쓰는 옵션인거같은데 branch간 이동할 때 주로 사용한다.

위와 같은 상황이 있을때 git log를 확인

soft-test라는 커밋내용을 soft reset 해보려고 한다.

soft reset 역시 실행 후 commit 내역이 없어지는것은 마찬가지지만

status로 확인해보면 이전 수정내용은 add되어있는것을 볼 수 있다.

 

이처럼 soft옵션은 head, branch 이동할 때 주로 사용한다.

그리고 reset 옵션중에서 가장 안전한 옵션이기 때문에 정말 중요한 코드라면 soft부터 해보는것을 추천한다.

 

참고

- https://antilog.tistory.com/32

728x90