형상관리

git submodule 등록 방법

최효식 2025. 1. 30. 00:02

일단 git submodule을 알아보게 된 이유에 대해서 말해보려고 합니다.

 

 

여러가지 Repository 에서 공용으로 사용할 Repository 가 필요한 상황이 발생했을 때 어떻게 해야할지 고민을 하면서 알아보게 됐습니다.

 

단적인 예로 여러가지 앱이 각각의 Repository로 있을 때 공통의 디자인 시스템을 사용해야 한다면 디자인 시스템 관련 Repository는 각각의 앱에서 참조해서 사용해야 합니다.

 

1. 서브 모듈 추가 (public repository 기준으로 작성했습니다. private 은 SSH 인증을 추가 해야합니다.)

 

git submodule add <서브 모듈 레퍼지토리 주소> <디렉토리명>

 

  • 이렇게 생성하고 나면 .gitmodules 에 path 와 url 이 저장되게 됩니다.

 

2. 서브 모듈 업데이트 (특정 브랜치로도 업데이트 가능합니다.)

 

git submodule update --remote --merge (--remote --merge 제일 최신 커밋으로 업데이트)

 

3. 생성된 서브 모듈을 root 경로의 settings.gradle 에 추가

 

include(":app")
include(":testmodule")
project(":testmodule").projectDir = file("testmodule/app")

 

  • 서브 모듈을 추가할 때 디렉토리명을 testmodule 로 지정했으며 해당 디렉토리에서 app 모듈을 사용하기 때문에 경로를 testmodule/app 모듈로 지정했습니다.

 

4. 사용할 모듈의 build.gradle에서 해당 모듈을 implementation 합니다.

 

implementation(project(":testmodule"))

 

 

이렇게 하면 해당 모듈에서 특정 레포지토리의 모듈을 사용할 수 있게 됩니다.

다음에는 특정 브랜치를 버전별로 왔다갔다 하면서 사용하는 방법에 대해서 포스팅하겠습니다.