개발을 위해 master에서 development 브랜치를 분리했습니다. 오늘은 기능을 테스트하려고 했는데, 의외로 두 브랜치의 해시가 완전히 동일합니다.
테스트
제출: e033e8a69384bf228d3d78ba486b4841ce2d3320 [e033e8a]
상위: ce67fb224a
개발
제출: e033e8a69384bf228d3d78ba486b4841ce2d3320 [e033e8a]
상위: ce67fb224a
그리고 브랜치를 삭제하고 다시 생성해도 해시는 그대로 유지됩니다. 무슨 일인가요?
Git은 svn이 아니므로 브랜치를 생성해도 스냅샷이 완전히 복사되지는 않습니다. Git은 개발과 동일한 위치를 가리키는 포인터 테스트를 생성합니다.
git의 해시 값은 각 커밋의 해시 값이며, 브랜치에는 해시 값이 없습니다. 테스트가 생성된 후에는 새로운 커밋이 없기 때문에 여전히 동일한 커밋을 참조하므로 당연히 동일한 해시 값을 갖습니다.