Git의 checkout이란 HEAD(#4 HEAD)의 작업 위치를 바꾸는 역할을 한다. Checkout에는 크게 두가지 기능이 있다. 그리고 checkout은 HEAD의 이동이라고 보면된다.
Checkout하는 방법은 다음과 같다.
<aside> 📝 HEAD checkout 방법
git checkout [branch_name]
git checkout [commit_hash]
git checkout master
git checkout 65be8c3b69b213e6d919044f66973766cffcc5e9
or
git checkout 65be8c3b
</aside>
Checkout에 branch(#5 BRANCH) 이름을 입력하면 HEAD는 branch가 가리키고 있는 commit으로 이동한다. 결과적으로 branch는 자신의 마지막 commit을 가르키고 있기 때문에 HEAD가 branch로 이동하여도 마지막 commit에 접근하여 작업할 수 있다.
Checkout에 commit hash를 입력하면 HEAD는 해당 commit으로 이동한다. commit hash 입력에는 두가지 방법이 있는데 하나는 commit hash를 전부 입력하는 방법과 다른 하나는 commit의 8자리 hash를 입력하는 방법이 있다.
<aside> 📌 commit hash Git은 commit을 생성하면서 commit 마다 고유 ID인 hash를 생성한다. hash로 commit의 추적이 가능하고 최신상태를 유지하는지 확인할 수 있기에 온/오프라인에서도 사용될 수 있는것이다. Commit hash는 SHA-1 해쉬알고리즘으로 생성된다. 또한 새로운 commit은 이전 commit을 추적할 수 있게 이전 hash값을 포함하여 새로운 hash값을 생성한다. 2017년 구글의 SHA-1 해시 충돌 성공으로 인해 SHA-1 안정성을 보장받지 못하자 Git 2.29버전 부터는 SHA-256으로 commit hash 생성되게 한다.
</aside>
checkout에는 여러가지 옵션이 있는데 HEAD이동과 동시에 branch 생성하는 방법은 다음과 같이 입력하면 된다.
<aside> 📝 Move HEAD & create branch
git cehckout -b [new_branch]
git cehckout -b slave
</aside>
그 외 다양한 옵션 기능이 있으며 자세한 사용방법은 git checkout reference를 참고하면 된다.