Git, CocoaPods, Xcode, Shell
[iOS - swift] github submodule (서브 모듈), SourceTree 사용 (git submodule update)
jake-kim
2022. 3. 24. 22:55
Submodule
- 하나의 repository 안에 또 다른 별개의 repository
- 서브모듈 repository는 독립적으로 커밋을 관리
Repo 준비
(대체적으로 source tree 이용)
- 예제로 사용할 Repo 추가
- 우측 SomeRepo: 이곳에 서브모듈을 추가
- 좌측 MyModule: SomeRepo의 Submodule로 사용
SomeRepo에 MyModule을 서브 모듈로 추가
- source tree로 하는 경우
- SourceTree에서 SUBMODULES 오른쪽 마우스 클릭 -> Add Submodules 선택
- MyModule URL을 입력
- Local Relative Path에는 Submodule이 위치할 폴더가 필요하여, 아래처럼 생성
- 좌측 SUBMODULES에 SubmoduleFolder가 생긴것을 확인
- Staged file에 .gitmodules, SubmoduleFolder 확인
- 중요하게 볼 사항은, SubmoduleFolder의 커밋로그를 보면, 3f0dbcb74...라고 되어있는것을 확인
- 해당 커밋로그는 MyModule의 최신 커밋
MyModule의 최신 커밋) 3f0dbcb (위와 일치)
submodule 업데이트 방법
- 테스트를 위해 서브모듈에 변경사항 입력 후 push
- 커밋 메시지: Update string
- SomeRepo의 Submodule을 보면 업데이트 된 아이콘 확인
- 위에서 SubmoduleFolder을 더블클릭
- 원격 저장소에는 갱신되어 있으므로 Pull하여 최신 커밋 정보 받아오기
- shift + cmd + L
- Pull하면 자동으로 SomeRepo에도 서브 모듈의 최신 커밋정보를 확인 가능
- Stage 후 커밋하면 반영 완료