깃 브랜치 특징


깃 브랜치는 기존 폴더를 복제하는 것과 다르게 가상 폴더를 사용하여 개발 작업을 구분합니다. 브랜치는 다음 특징들이 있습니다.


가상 폴더


깃의 브랜치는 작업 폴더를 실제로 복사하지 않고, 가상 폴더로 생성합니다. 외부적으로는 물리적인 파일 하나만 있는 것으로 보입니다.

생성된 작업 폴더는 물리적으로 복제된 구조보다 유연하게 처리할 수 있습니다. 브랜치로 생성된 가상 폴더는 빠르게 공간 이동이 가능합니다. 개발자는 쉽게 가상 폴더인 브랜치를 이동하면서 프로젝트를 수행할 수 있습니다.


독립적인 동작


브랜치를 이용하면 원본 폴더와 분리하여 독립적으로 개발 작업을 수행할 수 있습니다. 기존에는 소스 코드의 작업 폴더를 별도로 생성했습니다. 물리적으로 복사된 각자의 폴더에서 코드를 작업한 후 소스 코드 2개를 다시 하나로 합쳐야 했습니다. 코드를 하나로 합치려면 작업 내역들을 일일이 찾아 정리해야 합니다. 소스 코드를 하나로 통합하는 것은 매우 힘든 작업입니다.

하지만 깃과 같은 버전 관리 시스템을 이용하면 분리된 코드를 좀 더 쉽게 병합할 수 있습니다. 분리된 브랜치에서 소스 코드를 각자 수정한 후 원본 코드에 병합하는 명령만 실행하면 됩니다. 깃의 브랜치는 규모가 큰 코드 수정이나 병합을 처리할 때 매우 유용합니다.


빠른 동작


다양한 버전 관리 도구도 브랜치 기능을 지원합니다. 보통 다른 VCS들은 브랜치를 생성할 때 내부 파일 전체를 복사합니다. 이때 파일 크기가 매우 크다면 브랜치를 생성하는 데 시간이 오래 걸립니다.

하지만 깃의 브랜치 기능은 다른 버전 관리 도구보다 가볍고, 브랜치 전환이 빠른 것이 특징입니다. 깃은 Blob 개념을 도입하여 내부를 구조화합니다. Blob은 포인트와 유사한 객체입니다. 깃은 브랜치를 변경할 때 포인터를 이동하여 빠르게 전환합니다.

브랜치 명령을 사용하면 내부적으로 커밋을 하나 생성하여 브랜치로 할당합니다. 다른 버전 관리 시스템은 폴더의 파일 전체를 복사하는 반면, 깃은 41바이트를 가지는 해시(SHA1) 파일 하나만 만들면 됩니다. 따라서 브랜치를 더 빠르게 생성할 수 있습니다.