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 옵션을 추가해줘야 클론할 때 서브모듈까지 같이 받아옵니다.
반응형
'etc' 카테고리의 다른 글
메이플스토리 페어리브로의 황금마차 이벤트 (2020.9.3. ~ 12.16.) (0) | 2020.09.03 |
---|---|
메이플스토리 심신수련관 정보 (0) | 2020.09.02 |
메이플스토리 블랙리스트 사용 방법 (유저, 길드) (0) | 2020.09.01 |
메이플스토리 비공개접속 하는 방법 (0) | 2020.09.01 |
메이플스토리 카이저 스킬트리, 하이퍼스킬, 코어강화 정보 (0) | 2020.09.01 |