왜씀?
프로젝트를 수행할 때 다른 프로젝트를 함께 사용해야 하는 경우.
함께 사용할 다른 프로젝트는 외부에서 개발한 라이브러리, 내부 여러 프로젝트에서 공토응로 사용할 라이브러리일 수 있을 때 자주 생기는 이슈가 두 프로젝트를 서로 별개로 다루면서도 그 중 하나를 다른 하나 안에서 사용할 수 있어야한다는 것이다.
정확히 뭔데?
Git 저장소 안에 다른 Git 저장소를 디렉토리로 분리해 넣는 것.
다른 독립된 Git 저장소(Repository)를 Clone하여 내 Git 저장소 안에 포함할 수 있고 각 저장소의 커밋은 독립적으로 관리한다.
서브모듈 시작하기
$ git submodule add https://gitlab.com/aaa/aaa1
git submodule add {url}
: 작업할 Git 저장소에 준비된 리모트 Git 저장소를 서브모듈로 추가.
여기 까지 하면 .gitmodules
파일이 만들어진다. 이 파일은 서브디렉토리와 하위 프로젝트 URL의 매핑 정보를 담은 설정파일이다.
[submodule "aaa1"]
path = aaa1
url = https://gitlab.com/aaa/aaa1
서브모듈 포함한 프로젝트 Clone
$ git submodule init
$ git submoudle update
git submoudle init
: 서브모듈 정보를 기반으로 로컬 환경설정 파일이 준비 됨. (비어있음)
git submodule update
: 리모트 저장소에서 데이터를 가져오고 서브모듈을 포함한 프로젝트의 현재 스냅샷에서 Checkout 해야 할 커밋 정보를 가져와서 서브모듈 프로젝트에 대한 Checkout을 함.
서브모듈 업데이트
$ git submodule update --remote
위 명령어를 실행하면 Git이 알아서 서브모듈 프로젝트를 Fetch하고 업데이트한다.
'coding > git' 카테고리의 다른 글
gqg로 git commit 하기 (0) | 2022.02.08 |
---|
댓글