Git
작업 되돌리기
민철킹
2021. 6. 14. 22:55
git add 하지 않은 working tree에 있는 수정된 파일 되돌리기
git checkout -- 파일명
주의할점 : checkout을 하여 되돌린 내용은 다시 복구되지 않아요 ㅠ
git add 되어 스테이지에 올라간(스테이징된) 파일을 되돌리기
git reset HEAD
git reset HEAD 파일명
HEAD 뒤에 파일명을 지정해주지 않으면 현재 스테이지에 올라가있는 파일 모두를 되돌린다. add하기 전 상태로 돌려준다.
최신 커밋 되돌리기
git reset HEAD^ # 최근 커밋 하나 되돌림
git reset HEAD~3 # 최근 3개 커밋 취소
스테이징과 커밋이 끝난 상태를 커밋을 취소하고 unstage 해준다.
git reset 옵션
--soft HEAD^ # 최근 커밋을 하기 전 상태로 working tree를 되돌림
--mixed HEAD^ # 최근 커밋과 스테이징을 하기 전 상태로 working tree를 되돌림
# 옵션없이 git reset 명령만 사용할 때 이 옵션이 기본
--hard HEAD^ # 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 working tree를 되돌림
# 이 옵션을 사용하면 되돌린 내용은 복구 불가
commit hash를 사용한 reset
커밋 해쉬또는 커밋 id라고 부른다.
commit옆에 문자와 숫자가 섞인 hash값을 우리는 commit hash라고 부른다. 이를 사용하여 reset를 진행할 수 있다.
예를 들어, commit 버전이 현재 커밋한 시간 순으로 c1, c2, c3, c4가 있다고 가정해보자.
git reset --hard c2의 커밋 해시
hard 뒤에 특정 버전의 커밋 해시를 입력하면 그 버전으로 돌아가고 그 이후의 버전은 모두 삭제가 된다.
c2의 커밋 해시를 입력했다면 버전은 c2의 버전으로 돌아가고 c3, c4는 모두 삭제된다.(복구 불가)
만약 버전을 삭제하고 싶지 않다면 revert 명령어를 사용한다.
git revert 커밋해시
반응형