> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parallelane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 서브모듈

> 서브모듈 보기·업데이트

서브모듈은 저장소(Repository) 탭의 **서브모듈** 섹션에서 관리합니다. 초기화·업데이트는 물론, 서브모듈을 부모 저장소 밑의 자식 저장소로 열어 일반 저장소처럼 그래프·워킹 카피·원격 동기화를 그대로 사용할 수 있습니다.

## 서브모듈 업데이트 / 초기화

부모 저장소가 가리키는 커밋으로 서브모듈을 초기화·체크아웃합니다. 초기화(`--init`)가 항상 함께 실행되므로 아직 초기화되지 않은 서브모듈도 한 번에 처리됩니다.

<Steps>
  <Step title="개별 업데이트">
    서브모듈 항목을 우클릭하고 **업데이트**를 선택합니다. 그 서브모듈만 대상으로 실행됩니다.
  </Step>

  <Step title="전체 업데이트">
    서브모듈 섹션 헤더에 마우스를 올리면 나타나는 새로고침 버튼(**모든 서브모듈 업데이트**)을 누르면 모든 서브모듈이 한꺼번에 업데이트됩니다. 이때만 `--recursive`가 붙어 중첩 서브모듈까지 함께 처리됩니다.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/railgit/1HhHpeGsA-i8McQ3/images/settings-submodule-update.png?fit=max&auto=format&n=1HhHpeGsA-i8McQ3&q=85&s=5c0e47a87b9b7c93b63bee3656646dec" alt="서브모듈 섹션만 펼친 저장소(Repository) 패널에서 서브모듈 항목을 우클릭해 업데이트·제거 메뉴가 열린 모습" width="2266" height="1784" data-path="images/settings-submodule-update.png" />
</Frame>

## 자식 저장소로 열기

서브모듈은 부모와 별개인 독립 저장소입니다. 이를 자식 저장소로 등록하면 프로젝트(Projects) 사이드바에서 부모 저장소 아래 워크트리와 같은 레벨로 나타나고, 선택하면 일반 저장소처럼 다룰 수 있습니다.

<Steps>
  <Step title="서브모듈 열기">
    저장소(Repository) 탭의 서브모듈 항목을 **더블클릭**합니다. 아직 초기화되지 않았다면 먼저 자동으로 초기화된 뒤 등록됩니다.
  </Step>

  <Step title="사이드바에서 사용">
    프로젝트(Projects) 사이드바에 부모 저장소 밑으로 자식 저장소 행이 나타나고, 자동으로 선택됩니다. 이후 그래프·워킹 카피·fetch/pull이 모두 이 서브모듈을 대상으로 동작합니다.
  </Step>
</Steps>

서브모듈이 Git LFS로 추적되는 저장소라면, 자식 저장소로 등록된 뒤 사이드바 행에 **LFS** 배지가 함께 표시됩니다. 자세한 내용은 [Git LFS](/settings/git-lfs)를 참고하세요.

<Tip>사이드바에서 자식 저장소 행에 마우스를 올리면 오른쪽에 X 버튼(**사이드바에서 제거**)이 나타납니다. 누르면 "서브모듈 …을(를) 사이드바에서 제거할까요? 파일은 디스크에 그대로 유지됩니다." 확인 다이얼로그가 열리고, 확인해도 사이드바에서만 내려가며 `.gitmodules`나 실제 파일은 건드리지 않습니다.</Tip>

## 서브모듈 추가 / 제거

<Tabs>
  <Tab title="추가">
    서브모듈 섹션 헤더에 마우스를 올리면 나타나는 **서브모듈 추가** 버튼(`+`)을 누르면 다이얼로그가 열립니다. **저장소 URL**(필수), **경로**(필수, 부모 기준 상대 경로), \*\*브랜치 (선택)\*\*을 입력하고 **추가**를 누릅니다.
  </Tab>

  <Tab title="제거">
    서브모듈 항목을 우클릭하고 **제거**를 선택합니다. **서브모듈 제거** 확인 다이얼로그에서 **제거**를 누르면 Git에서 실제로 제거됩니다.

    <Warning>다이얼로그의 경고대로 제거하면 서브모듈 내부의 커밋되지 않은 변경은 사라집니다. 해당 서브모듈이 자식 저장소로 등록되어 있으면 사이드바에서도 함께 내려갑니다.</Warning>
  </Tab>
</Tabs>

<Note>"사이드바에서 내리기"와 "Git에서 제거"는 다릅니다. 자식 저장소 행의 호버 X는 사이드바 등록만 해제하며 Git은 변경하지 않고, 저장소(Repository) 탭 우클릭 메뉴의 **제거**는 서브모듈을 Git에서 실제로 제거합니다.</Note>
