본문 바로가기

Dev./etc

Git 서브모듈 (Submodule)

하나의 프로젝트 안에 여러개의 프로젝트가 존재하는경우, 

각각의 독립된 Repository로 관리하고, 부모 Repository에서 자식의 참조 HEAD 위치를 저장해서 관리한다.

repository는 독립 되어 있어야 하고, git submodule add 로 submodule 을 추가한다.

clone 하거나 pull 할때는 ** --recurse-submodules** 옵션을 이용하면 submodule 들을 한번에 clone 하거나 pull 할 수 있다.



구성하는 방법

Server

mkdir submodule
mkdir submodule.projectA

cd submodule
git init --bare

cd ../submodule.projectA/
git init --bare


Client

1. 부모 프로젝트 생성

git init
git remote add origin {{git repository url}}/git/submodule
git add .
git commit -m "init proj"
git push --set-upstream origin master


2. 자식 프로젝트 생성

./projectA 디렉토리가 이미 존재 하고 있으면 안됨

git submodule add -f {{git repository url}}/git/submodule.projectA ./projectA
(위 명령 - git submodule add... 을 두번 실행시켜야 됨 왜그런진 모르겠음)

cd projectA
git add .
git commit -m "init proj"
git push --set-upstream origin master


3. submodule이 추가된 부모 project를 commit 한다.

cd ..
git add .
git commit -m "add projectA"
git push



Clone 하는 방법

git clone --recurse-submodules {{git repository url}}/git/submodule


반응형

'Dev. > etc' 카테고리의 다른 글

Git 서브트리 (Subtree)  (0) 2018.12.12
Redmine 설치법  (0) 2018.11.12
Git 브랜치 배우기  (0) 2014.02.21
Cubieboard 2(A20) 서버 세팅  (0) 2014.02.20
500 OOPS: vsftpd: refusing to run with writable root inside chroot()  (0) 2014.02.18