checkout 기능 분리
공식 문서는 git checkout의 기능을 다음과 같이 정의하고 있다.
- git checkout : Switch branches or restore working tree files
즉, 두 개 이상의 기능을 가지고 있는데 2.23 버전에서 기능 각각이 switch, restore 명령어로 분리되었다.
- git switch : Switch branches
- git restore : Restore working tree files
이 글에서는 restore 명령어에 대해 정리한다. git switch는 2022.08.17 - [Git] switch에서 정리했다.
restore
restore는 checkout의 기능 중 파일 내용을 되돌리는 기능만을 담당한다. 옵션 없이 사용하면 HEAD commmit으로 복구한다.
git restore <FILE>
# 예시
git restore README.md
git restore --source
--source 옵션을 사용하면 지정한 커밋 상태로 변경할 수 있다.
git restore --source <COMMIT> <FILE>
git restore --staged
--staged 옵션을 사용하면 add 한 파일을 unstaged 상태로 변경하고 수정사항을 초기화한다.
git restore --staged <FILE>
# 예시
git restore --staged test.txt
참고 문서
[Git] git restore 사용해 파일 단위 제어하기(git add 취소, 특정 커밋으로 되돌리기 등)
https://blog.outsider.ne.kr/1505