하나의 Git 저장소 안에 또 다른 Git 저장소를 넣는 기능
내 프로젝트 안에 외부 라이브러리나 공통 모듈을 그대로 가져와서 쓸 수 있음
그냥 복사하는 게 아니라 독립된 버전관리 상태로 연결됨
즉, 코드 복사 없이, 외부 코드와 연결해서 쓰는 방법이라고 보면 됨
버전도 고정할 수 있고, 나중에 업데이트도 선택적으로 가능
A 프로젝트 안에 B 프로젝트를 연결해두고, B도 따로 버전 관리하면서 A 안에서 같이 쓰는 방식
app 프로젝트 안에 common-lib이라는 공통 라이브러리를 서브모듈로 연결해두면 → common-lib 코드는 따로 관리되지만, app에서 마치 내 코드처럼 쓸 수 있음 → common-lib 는 독립된 저장소 app은 저장소의 특정 버전(커밋)을 참조만 한다git submodule add <repo-url> <폴더경로>
git submodule add <https://github.com/user/lib.git> libs/lib
.gitmodules 파일이 자동 생성되고, 서브모듈 정보가 여기에 기록됨| 명령어 | 설명 |
|---|---|
git submodule init | 서브모듈 설정 초기화 |
git submodule update | 서브모듈 실제로 받아오기 |
git clone --recurse-submodules | clone 시 서브모듈까지 한 번에 가져오기 |
git submodule update --remote | 서브모듈의 최신 커밋 가져오기 |