728x90
# 출처 : [도서]Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문(이고잉)
- git restore 파일 이름 : 작업 트리에서 수정한 파일 되돌리기(구 버전: git checkout -- 파일 이름) → 스테이지에 올라가지 않은 상태에서 적용!
- git restore --staged 파일 이름 / git reset HEAD 파일 이름 : 스테이징 되돌리기 → 저장소에 올라가지 않은 상태에서 적용!
- git reset HEAD^ : 최신 커밋 되돌리기
- git reset 커밋 해시 : 특정 커밋으로 되돌리기
- git revert 커밋 해시 : 커밋 삭제하지 않고 되돌리기
작업 트리에서 수정한 파일 되돌리기
git restore
git restore
※ 깃 버전이 업그레이드 되면서, checkout을 대신할 switch, restore가 도입되었다고 한다.
■ checkout : Switch branches or restore working tree files
■ switch : Switch branches
■ restore : Restore working tree files
더보기
(구버전) checkout으로 브랜치 변경과 작업 트리의 파일을 복원을 전부 다 했지만,
(새버전) switch로 브랜치 변경, restore로 작업 트리의 파일을 복원 하도록 분리되었다.
※ 참고 사이트 : https://blog.outsider.ne.kr/1505
스테이징 되돌리기
git reset HEAD / git restore --staged
git reset HEAD
git restore --staged
restore은 복구를 위한 명령어
reset은 되돌아간 커밋 이후의 히스토리는 전부 삭제
revert은 특정 커밋만 취소
최신 커밋 되돌리기
git reset HEAD^
git reset HEAD^
HEAD^는 현재 HEAD가 가리키는 브랜치의 최신 커밋(git log에서 (HEAD -> master)표시가 있던 곳)을 가리킨다.
→ 이렇게 되돌리면, 커밋도 취소되고 스테이지에서도 내려진다. 취소한 파일이 작업 트리에만 남는다.
※ 최근 3개의 커밋을 취소하려면, ex) $ git reset HEAD~3
▼ git reset HEAD~3 예시
▼ reset 명령의 옵션
명령 | 설명 |
--soft HEAD^ | 최근 커밋을 하기 전 상태로 작업 트리를 되돌립니다. |
--mixed HEAD^ | 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌립니다. 옵션 없이 git reset 명령을 사용할 경우 이 옵셥을 기본으로 작동합니다. |
--hard HEAD^ | 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌립니다. 이 옵션으로 되돌린 내용은 복구할 수 없습니다. |
특정 커밋으로 되돌리기
git reset 커밋 해시
git reset --hard 커밋 해시
참고로, 되돌아가려는 커밋A의 커밋 해시를 입력했을때,
A 커밋을 삭제하는 것이 아니라 A 커밋 이후에 만들었던 커밋을 삭제하고 A 커밋으로 이동하겠다는 의미로 해석해야 한다.
커밋 삭제하지 않고 되돌리기
git revert 커밋 해시
728x90
'IT > Git' 카테고리의 다른 글
[Git] 브랜치 병합 (0) | 2022.08.12 |
---|---|
[Git] 브랜치 생성, 이동, 확인 (0) | 2022.08.12 |
[Git] 커밋 메세지 수정 및 상세보기 (0) | 2022.08.11 |
[Git] 버전 만드는 단계마다 파일 상태 알아보기 (0) | 2022.08.11 |
[Git] 커밋 내용 확인하기 (0) | 2022.08.11 |