더북(TheBook)

6.7.1 마지막 커밋

깃은 마지막 커밋 정보가 중요합니다. 깃은 마지막 커밋 정보를 기반으로 새로운 커밋을 생성합니다. 마지막 커밋은 새로운 커밋의 부모 커밋입니다.

시스템이 매번 커밋할 때마다 마지막 커밋 정보를 찾으면 부하가 발생합니다. 깃은 마지막 커밋을 쉽게 확인할 수 있도록 특수한 포인터를 제공합니다. HEAD는 작업 중인 브랜치의 마지막 커밋 ID를 가리키는 참조 포인터입니다.

깃은 마지막 커밋을 가리키는 HEAD 포인터를 부모 커밋으로 대체하여 사용합니다. HEAD 포인터를 사용하여 빠르게 스냅샷을 생성할 수 있습니다.

커밋 로그를 이용하여 HEAD를 확인해 보겠습니다.

infoh@DESKTOP MINGW64 /e/gitstudy06 (master)

$ git checkout footer 브랜치 이동

Switched to branch 'footer'

 

infoh@DESKTOP MINGW64 /e/gitstudy06 (footer)

$ git log --graph --all 로그 확인

* commit dcdb1c1fa4ef78bedd8dc13bc267e99391cc9782 (master)

| Author: hojin <infohojin@gmail.com>

| Date: Sat May 11 18:45:35 2019 +0900

| master working...

|

* commit d84766c7f87b1d9d234050949c48681ba4e35da8 (HEAD -> footer, feature) HEAD 위치

Author: hojin <infohojin@gmail.com>

Date: Sat May 11 17:10:02 2019 +0900

first

master 브랜치의 마지막 커밋은 dcdb1c1이고, footer 브랜치의 마지막 커밋은 d84766c입니다. master 브랜치에서 새로운 커밋을 생성할 때 부모 커밋으로 dcdb1c1을 가리키는 HEAD 포인터를 사용합니다. footer 브랜치에서 새로운 커밋을 생성할 때는 d84766c를 가리키는 HEAD 포인터를 사용합니다. 그리고 각 브랜치의 마지막 HEAD 포인터를 사용하여 커밋합니다. 현재 HEADfooter 브랜치의 d84766c를 가리킵니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.