목차

Submodule 이란?

서브모듈(Submodule)은 git repository 안에 다른 하위 git repository 를 관리하는 도구이다.

예를 들어, 프로젝트 A 에서 외부 라이브러리를 사용하기 위해서 외부 라이브러리를 프로젝트 A 폴더 안에 저장하는 것이다.

submodule.drawio.png

서브모듈을 git repository 에 추가한 다음 github 에 올리면 아래와 같이 파란색 글씨로 표시된다.

Untitled

서브모듈 git repository 이름과 서브모듈의 commit hash 값이 함께 표시되며, 클릭 시 해당 repository 로 이동한다.

Untitled

이때, 서브모듈 repository 가 private 으로 설정되어 있다면, 다른 사람이 해당 서브모듈을 클릭했을 때 해당 페이지로 이동할 수 없다.

만약, 다른 사람들도 서브모듈 repository 를 접근할 수 있게 하고자 한다면 public 으로 전환하거나, collaborator 로 추가하면 된다.

서브모듈 활용하기

하나의 repository 안에서 다른 사람들과 코드를 공유하고 싶은 경우라고 해보자.

기존에 다른 repository 에서 작성한 코드가 있는 상태일 때 사용할 수 있는 방법은 크게 2가지이다.

  1. 작성한 파일만 따로 복사해서 붙여넣기
  2. 서브모듈 사용하기

commit 내역을 공유해야 하는 상황이라면 서브모듈을, 그렇지 않다면 파일 복붙이 적절할 것이다.

서브모듈을 그림으로 표현하면 다음과 같다.

submodule.drawio (1).png