git submodule

2024. 9. 13. 15:34·Git

git-submodule

하나의 저장소에서 다른 저장소를 포함하고 관리할 수 있게 해주는 기능

주로 의존성 관리 및 외부 프로젝트 통합에 사용

어떻게 적용하는가

git submodule add {대상 레포지토리}

 

위 명령어 수행 시 github desktop에서 두가지 파일이 stage 되는것을 알 수 있다.

근데 git add랑 git stage랑 무엇이 다른걸까?

아래의 링크에서 볼 수 있듯이 똑같다고 한다. 이제 다음 스텝으로 가자

https://superuser.com/questions/1395627/differences-between-git-add-and-git-stage

gitmodules 파일에 아래의 내용이 추가 되었다.

[submodule "github-submodule-test"]
    path = github-submodule-test
    url = https://github.com/gogoadl/github-submodule-test.git

branch를 직접 지정해줄수도 있다고 한다.

또한 submodule을 추가 했던 레포지토리 자체의 변경사항도 있다고 나온다.

위 내용을 푸쉬하면 submodule이 등록된것을 확인 할 수 있다.

submodule 업데이트 반영

submodule을 포함하여 개발 중 submodule의 업데이트가 발생할 수 있다. 이를 반영하는 방법은 아래와 같다.

# .gitmodules 파일에 정의되어 있는 브랜치의 최신 버전으로 업데이트 (혹은 default 브랜치)
git submodule update --remote

역시나 다양한 케이스의 업데이트 방식을 지원하는 것 같다. 궁금하면 좀 더 찾아보자.

submodule 실제 활용 케이스 살펴보기

예전에 한글화에 기여했었던 서비스인 fxsound의 경우 서비스의 문자열 데이터를 저장하고 있는 Strings 레포지토리를 submodule로 관리하는 것을 알 수 있다.

현재 기여를 준비하고 있는 gihub가 주관하는 자격증의 시험 문제 덤프 서비스인 ghcertified에서도 .gitmodules로 서브모듈을 관리하고 있다. (이미지에 노란색으로 표시했다.)

이 프로젝트에서는 레포지토리 자체에서 submodule을 가지고 있지 않고, 필요할 때 submodule update를 통해 가져오도록 문서에서도 안내하고 있다.

마무리

submodule이 무엇인지, submodule을 어떻게 활용할 수 있는지 간단히 살펴보았다.

지금 당장 나에게 필요한 기능은 아니지만, 추후 필요할 때 사용할 수 있게끔 숙지해두자.

'Git' 카테고리의 다른 글

오픈소스 기여 해주세요 (저말고 님이 ㅎㅎ)  (7) 2024.09.24
Github Security (Security Policy, Report Vulnerability)  (2) 2024.09.11
Github Foundations 오답노트  (2) 2024.09.10
Github Issue Form으로 Issue Template 대체하기  (2) 2024.09.06
Github Foundations 준비  (4) 2024.09.06
'Git' 카테고리의 다른 글
  • 오픈소스 기여 해주세요 (저말고 님이 ㅎㅎ)
  • Github Security (Security Policy, Report Vulnerability)
  • Github Foundations 오답노트
  • Github Issue Form으로 Issue Template 대체하기
HWBB
HWBB
흥미주도개발자
  • HWBB
    코딩공부방
    HWBB
  • 전체
    오늘
    어제
    • 분류 전체보기 (164)
      • 알고리즘 (61)
      • Android (27)
      • Kotlin (0)
      • Java (2)
      • Design Pattern (2)
      • React Native (1)
      • Python (0)
      • TIL (21)
      • Unity (0)
      • React (2)
      • AWS (0)
      • Git (11)
      • MFC (1)
      • Spring (4)
      • Computer Science (4)
      • Vue (4)
      • Infra (6)
      • 박현우 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 승윤이
  • 공지사항

  • 인기 글

  • 태그

    코틀린
    programmers
    github
    알고리즘
    깃허브
    프로그래머스
    GIT
    coding
    백준
    android studio
    코딩테스트
    baekjoon
    안드로이드
    Kotlin
    algorithm
    AWS
    Java
    안드로이드 스튜디오
    자바
    Android
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
HWBB
git submodule
상단으로

티스토리툴바