297 words
1 minute
[Git]Submodule
2024-09-25
2025-07-10

Overview#

01. Git Submodule#

하나의 git repository안에 다른 저장소가 포함되는 것


Concept

  • Git Submodule : 하나의 git repository안에 다른 저장소가 포함되는것. 여러 프로젝트에서 같은 코드를 공유하면서도 각각의 프로젝트에서 버전을 독립적으로 고정하고 싶을 때 사용. Submodule은 기본적으로 단순히 특정 커밋을 가리키는 포인터임. 상위 repository에 실제 소스가 있는 것이 아니라 .gitmodules 파일과 함께 submodule의 commit SHA가 기록됨.

02. Submodule 추가방법#

1. submodule 추가

Terminal window
git submodule add <repository> <path>

2. submodule 초기화 및 업데이트

  • 새로 clone할 때 submodule까지 같이 받을 경우
Terminal window
git clone --recurse-submodules <상위 repo URL>

2. submodule 동기화

Terminal window
cd <submodule_path>
git checkout main
git pull origin main

이후 상위 repo에서 다음 실행

Terminal window
git add <submodule_path>
git commit -m "Update submodule lib-utils"

03. Submodule 관련 명령어#

Terminal window
git submodule add <url> <path> # submodule 추가
git submodule init # submodule 초기화
git submodule update # 기록된 커밋으로 체크아웃
git submodule update --remote # 원격 최신 브랜치로 업데이트
git submodule status # 현재 submodule 상태 확인
git submodule foreach 'git pull' # 모든 submodule 최신화
[Git]Submodule
https://yjinheon.netlify.app/posts/02de/git/git-submodule/
Author
Datamind
Published at
2024-09-25
License
CC BY-NC-SA 4.0