[Git]

[Git] SubModule 추가하는 방법

극꼼 2022. 10. 31. 20:19
반응형

 

1. 서브모듈(SubModule)이란?

: 별도의 Git repository(하위 repository)를 다른 디렉토리로 분리해 넣는 것입니다. 

 

프로젝트에 쓰이는 데이터를 관리하는 별도의 repository를 만들어 프로젝트와 연동되게 하고자 합니다. 아래 과정을 거쳐 서브모듈을 만들어 보겠습니다.


1. 서브모듈 repository를 추가하는 방법

아래 명령어를 상위 repository에 입력해 서브모듈을 추가해줍니다.

 

$ git submodule add [submodule repository 주소] [submodule repository path] 

: submodule repository의 경로를 이미 생성해뒀을 경우.

 

$ git submodule add [submodule repository 주소]

: path를 생략하면 아래와 같이 상위 repository 안에 서브모듈로 사용할 remote repository와 동일한 이름의 디렉토리를 clone으로 생성합니다. 

 

 

2.  서브모듈 정보 확인

$ git status

를 입력했을 때 아래와 같이 서브모듈 디렉토리와 .gitmodules 파일이 생성된 것을 조회할 수 있습니다. 새로운 변경점을 커밋해줍시다.

 

.gitmodules 파일에는 서브모듈 목록에 대한 정보가 들어있습니다. 

$ cat .gitmodules

를 입력하면 서브모듈의 경로, 서브모듈의 url 매핑 정보를 볼 수 있습니다.

[submodule "mr-patch-data-protocol"]
path = mr-patch-data-protocol
url = https://github.com/TeamMushroom/mr-patch-data-protocol.git

 

 

3. 서브모듈의 repository에 변경점이 생길 경우

 서브모듈의 repository에 변경점이 생기면, 상위 repository에는 다음과 같은 변경점이 생깁니다. 

$ git diff

명령어로 확인해보면 

diff --git a/mr-patch-data-protocol b/mr-patch-data-protocol
index ebec65a..ff6aaca 160000
--- a/mr-patch-data-protocol
+++ b/mr-patch-data-protocol
@@ -1 +1 @@
-Subproject commit ebec65a9b152108ee756ea61ab7e894118a08fcc
+Subproject commit ff6aaca98f74ce98b6428dd0c85fd3ff95ba57f5

+Subproject commit [commit hash] : 하위 repository의 어떤 커밋을 새로 바라보고 있는지를 알려줍니다. 

 

반응형