[submodule "pages"]
path = pages
url = git@github.com:yzzeee/ansible.git
git submodule sync --recursive
git submodule update --init --recursive
git clone --recursive <원격저장소>
git submodule update --recursive --remote
2021년 11월 3일
https://www.youtube.com/watch?v=MIGliPrUMGE&ab_channel=우아한Tech
2022년 1월 8일
내가 서브 모듈을 만들어서 메인 레포지토리에 추가하고자 할때에는 서브 모듈을 위치 하고자 하는 디렉토리에 해당 서브 모듈이 클론된 상태여야 한다.
git clone --recursive : 레포지토리를 클론할 때 서브 모듈을 포함하여 클론한다. git clone 만 입력할 경우, 서브 모듈의 폴더들은 빈폴더인 상태가 된다.
clone 할 때 실수로 —recursive 옵션을 주지 않은 경우 아래의 명령어를 통해 최신 상태의 submodule을 클론 한다.
git submodule update --init --recursive
git submodule update 와 git submodule sync 차이점
git submodule update vs git submodule sync
git submodule update : submodule 디렉토리 마다 git checkout 을 하는 것과 같다.
--init 옵션에 대한 설명
--remote 옵션
서브 모듈의 최신 상태를 받아온다. 따라서 메인 레포지토리에서 변경사항이 발생하며 새로 커밋을 해주어야 한다.
--resursive 옵션
submodule 안에 또 다른 하위의 submodule 이 있는 경우를 대비에 추가해 주는 옵션이다.
git submodule sync : 처음에 메인 레포지토리를 클론하고 서브 모듈도 클론 하였는데 원격에서 .gitmodule 파일을 수정하여 submodule 의 URL 의 바뀐 경우 git 은 원격에서 바뀐 사항을 로컬에 반영하지 않는다. 이때 git submodule sync 를 실행해야 원격에서 바뀐 서브모듈 URL 의 변경 사항이 로컬에 적용된다. 해당 내용은 .git/config 에 기록된다.
--resursive 옵션
submodule 안에 또 다른 하위의 submodule 이 있는 경우를 대비에 추가해 주는 옵션이다.