Git 교과서

코드 이력, 하나도 놓치지 마라!

버전 관리 시스템의 이해와 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지
깃, 소스트리, 깃허브로 실습하며 기본기를 탄탄하게 다진다!

Yes24 교보문고 알라딘 인터파크 길벗

대형 프로젝트


깃은 작은 프로젝트부터 대용량 프로젝트까지 관리할 수 있는 버전 관리 도구입니다. 깃은 작은 프로젝트뿐만 아니라 큰 규모의 프로젝트도 관리하기 쉽도록 저장소를 여러 개 이용하여 단일 프 로젝트를 진행할 수 있습니다.


저장 용량


깃 저장소는 용량 한계가 없습니다. 컴퓨터의 하드디스크에서 지원하는 용량만큼 깃 저장소를 생 성할 수 있습니다. 또 깃은 파일을 기반으로 데이터베이스를 관리합니다. 하지만 저장소 크기가 너무 크면 컴퓨터에 부담을 줍니다.

이러한 이유로 깃 호스팅 서비스들은 제공되는 저장소 용량을 제한합니다. 보통 1GB 용량을 제 공하기 때문에 파일 개수가 많은 프로젝트에서는 좀 더 효율적인 관리 방법이 필요합니다.


저장소 분리


규모가 큰 프로젝트는 저장소 용량이 많이 필요합니다. 또 단지 용량이 크기만 한 저장소는 비효 율적입니다. 필요에 맞게 작은 저장소로 분할하여 운영하는 것이 좀 더 효율적입니다. 깃 역시 큰 규모의 저장소를 작은 저장소로 나누어 관리할 수 있습니다.

즉, 저장소 하나를 작은 저장소 몇 개로 분할할 수 있다는 의미입니다. 이러한 저장소의 분할 개념 을 서브모듈이라고 합니다. 서브모듈은 저장소 하나가 다른 깃 저장소를 포함하는 형태를 의미합니 다. 이러한 서브모듈 개념을 적용하면 대형 프로젝트도 효과적으로 관리할 수 있습니다.

그림 11-1 분할된 저장소
분할된 저장소

작게 나뉜 모듈 형태의 저장소는 다른 프로젝트에서도 재사용할 수 있습니다.


상하 관계


요즘 규모가 큰 프로젝트는 모듈화하여 개발하는 추세입니다. 각 기능들을 모듈화하여 독립된 깃 저장소로 관리합니다. 그리고 독립된 깃 저장소는 모듈로서 다시 메인 저장소와 결합하여 재사용 됩니다.

메인 저장소에는 서브 저장소가 여러 개 있습니다. 따라서 저장소 간 상하 관계가 발생합니다. 보 통 부모 저장소와 자식 저장소 형태로 나눕니다. 부모 자식 관계로 분리된 로컬 저장소는 또다시 개별 원격 저장소와 연결됩니다. 원격 저장소로 동기화된 자식들은 언제든지 다른 프로젝트의 모 듈별로 기능을 처리하고 결합할 수 있습니다.