본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
Section 7.1: 이전 커밋으로 되돌리기
이전 커밋으로 작업 환경을 돌리고 싶다면, 우선 git log
명령을 이용해 커밋의 해시값을 확인한다.
일시적으로 작업 환경을 해당 커밋으로 올리고 싶다면, 현재 HEAD를 아래와 같이 detach 시킨다:
git checkout 789abcd
위 명령어는 사용자의 작업 환경을 789abcd 커밋에 위치시켜 줄 것이다. 이제 사용자가 이 예전 커밋 위에 새로운 커밋을 추가하더라도, 기존 HEAD 가 가리키던 브랜치에는 아무런 영향을 미치지 않는다. 이렇게 추가된 새로운 수정 사항들은 branch
나 checkout -b
등의 Git 명령을 통해 정식 브랜치로 만들어질 수 있다.
현재의 변경 사항들을 유지하면서도 작업 환경을 예전 커밋으로 되돌리기를 원한다면, 아래와 같이 수행한다:
git reset --soft 789abcd
가장 마지막 커밋을 되돌리고 싶다면, 아래와 같이 수행한다:
git reset --soft HEAD~
특정 커밋 이후의 모든 변경사항들을 완전히 무효화하길 원한다면, 아래와 같이 수행한다:
git reset --hard 789abcd
마찬가지로, 이전 커밋 이후로의 모든 변경사항들을 완전히 무효화하길 원한다면, 아래와 같이 수행한다:
git reset --hard HEAD~
주의: 위와 같이 무효화시킨 커밋들은 reflog
와 reset
을 이용하여 복구를 할 수 있지만, 커밋되지 않은 변경사항들은 복구가 아예 되지 않는다.
안전한 작업을 위해서는 git reset --hard
보다는 git stash; git reset
을 이용하는 것을 권장한다.
[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)
반응형
'번역 > Git Notes for Professionals' 카테고리의 다른 글
7.3: reflog 활용하기 (0) | 2019.09.20 |
---|---|
7.2: 변경 사항을 되돌리기 (0) | 2019.09.20 |
6.12: UTF-16 형식으로 인코딩된 파일들과 plist 바이너리 파일들의 변경 내역 확인하기 (0) | 2019.09.18 |
6.11: meld 툴을 이용하여 작업 디렉토리 내의 모든 수정사항을 확인하기 (0) | 2019.09.18 |
6.10: 두 커밋 혹은 두 브랜치 사이의 차이점 확인하기 (0) | 2019.09.17 |