git checkout은 파일, 커밋 그리고 브랜치를 전환하는 방법을 제공한다.
신규 브랜치를 생성하여 해당 브랜치로 전환하는 방법을 제공한다. existing-branch가 주어진 경우 주어진 브랜치 기반으로 브랜치를 생성하며 생략된 경우 현재 브랜치 기반으로 생성한다.
git checkout -b <new-branch> [existing-branch] |
기존에 존재하는 브랜치로 전환하는 방법을 제공한다.
git checkout <branch> |
브랜치의 특정 파일 또는 폴더 전환도 지원한다.
git checkout master -- <path 또는 파일 경로> |
Git은 HEAD을 이용해 현재 snapshot를 관리한다. 내부적으로 checkout은 HEAD이 가리키는 commit 또는 branch 을 변경한다. HEAD가 아닌 commit을 checkout하면 git은 detached HEAD 상태로 전환한다.
detached HEAD 상태는 참조하는 브랜치가 없기 때문에 과거 커밋 내용을 확인하는 등의 용도에서 사용고 정상적인 기능 개발을 위해 사용하지 않도록 주의한다.