Git Reset
내용을 수정하다가 이전 commit으로 돌아가고 싶을 때, 주로 Git reset을 사용한다.
reset 명령어에는 hard, soft 등과 같은 옵션들이 있는데 본인이 어떻게 reset하고 싶은지에 따라서 옵션을 다르게 주면 된다.
이번 포스팅에서 git diff, log로 수정 및 커밋사항을 확인하고, git reset을 활용해 이전으로 되돌리는 방법을 알아보자
- git diff
https://zeuskwon-ds.tistory.com/124
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부터 해보는것을 추천한다.
참고
'Git' 카테고리의 다른 글
[Git] 코드 변화 확인하기 - git diff (1) | 2024.01.05 |
---|---|
[Git]협업을 위한 git코드 with Intellij (0) | 2022.03.29 |
[Github] 깃헙 private 인원제한과 유료버전 비교 (0) | 2022.03.28 |
CLI _ Git, conda 가상환경 사용법 (0) | 2021.07.21 |