etc
Git 서브모듈까지 clone 하는 법
조부장
2020. 9. 2. 06:37
git을 사용하다보면 다른 git 리포지토리를 그대로 갖다 써야되는 경우가 있습니다. 예를 들면 LLVM의 코어를 프로젝트 안에 포함시켜야할 때가 있는데요, 이때 프로젝트를 그대로 복사만 해놓으면 이후에 관리가 안됩니다.
그래서 git에서는 서브모듈(submodule, =nested repository)이라는 기능을 활용하고 .gitmodules 파일로 서브모듈들을 관리하게 됩니다.

Github(깃허브)에서 폴더에 화살표가 그려진 아이콘이 있고 뒤에 커밋 ID가 써있는 폴더가 있는데 이게 서브모듈을 나타내는 겁니다.
예를 들면 마이크로소프트 STL은 llvm-project, vcpkg를 서브 모듈로 사용하고 있습니다.

폴더를 클릭해보면 해당되는 커밋 ID의 리포지토리가 나옵니다.
$ git clone --recurse-submodules https://github.com/microsoft/STL.git
서브모듈이 있는 리포지토리를 클론(clone)할 때는 그냥 클론하면 서브모듈의 폴더는 텅 빈채로 클론이 됩니다. 그래서 위처럼 --recurse-submodules 옵션을 추가해줘야 클론할 때 서브모듈까지 같이 받아옵니다.
반응형