Checkout

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>

Checkcout and create branch

checkout에는 여러가지 옵션이 있는데 HEAD이동과 동시에 branch 생성하는 방법은 다음과 같이 입력하면 된다.

<aside> 📝 Move HEAD & create branch

git cehckout -b [new_branch]

git cehckout -b slave

</aside>

Reference

그 외 다양한 옵션 기능이 있으며 자세한 사용방법은 git checkout reference를 참고하면 된다.

Git - git-checkout Documentation