TIL

1121

🥭맹2 2022. 11. 21. 21:00

✔️git submodule

나름 2020년.. 첫 개발을 시작할 때부터 git에 대해 잘 배웠고. . . (ssafy 선생님이 매우 구우우우욷)
2021년 프로젝트와 부캠을 하면서 cherry-pick, rebase merge, squash merge 등 git에 대해서는 나름 잘 안다고 생각했었는데 . .
오늘 업무하면서 submodule이란게 있다는 것을 처음 알았다. 두둥

 

submodule 메인(부모) repo에 하위(자식) repo를 두고 관리하는 경우에 쓴다.

 

예를 들면, 한 프로젝트가 있을 때 이 프로젝트의 engine, 그리고 engine을 사용해서 기능을 구현할 때
engine따로, 기능 구현 따로 개발이 진행되어야하기 때문에 이렇게 쓴다.
찾아보니 이 외에도 외부에 노출시키지 않기 위해 쓰는 경우(https://tecoble.techcourse.co.kr/post/2021-07-31-git-submodule/) 도 있었다.

 

submodule을 사용할 때는 clone할 때 $git clone --recursive {URL}를 사용하면 메인 repo와 하위 repo를 한 번에 받아올 수 있다.
(오늘의 나는 이걸 모르고 메인 repo만 clone했다가 왜 실행이 안되지?.? 했었다. ㅎㅋ)

그리고 서브모듈을 pull할 때에는 $git pull --recurse-submodules 혹은 $git submodule update --recursive --remote 이다.

그리고 submodule을 사용할 때 하나의 메인 repo에는 다수의 하위 repo를 둘 수 있다.!
이 때는 foreach를 사용하면 모든 하위 repo에 한 번에 같은 명령을 줄 수 있다.
(`$ git submodule foreach 'git stash'`)

 

참고 자료

'TIL' 카테고리의 다른 글

1122  (0) 2022.11.22
1120  (0) 2022.11.20
221026  (0) 2022.10.26
0918  (1) 2022.09.18
0917  (1) 2022.09.18