기타 기술들(Unity 관련)

Git 서브모듈 관련 사용법

Dean83 2022. 3. 24. 22:49

1. 서브모듈 간략 정의
    - Git Repository를 링크를 걸어 가져와 적용하는 방식으로, A Repository에서 타 Repository 항목을 동시에 관리할 수 있음. 

2. 사용하는 이유
    - A, B, C 세개의 Repository가 있다고 가정하고, C Repository 항목을 A와 B에서 공통으로 사용할 경우, C의 항목 1번만 수정하면
      A와 B에 모두 동시 적용이 가능

3. 서브모듈 추가
     - A, B, C 각 Repository 생성
     - A, B, C 각 Repository와 연결하여 각 Local 공간과 연결
     - 소스트리의 A, B Repository 에서, History 선택 -> 하단 스태시 아래 빈공간 마우스 우클릭 -> 서브모듈 추가 클릭
        -> C의 Remote Repository 주소 입력 및 Local 공간 선택 후 추가
             => 각 A, B에 C의 Repository가 로컬에 개별적으로 존재함. 즉 C의 로컬은 원본, A에 포함된 서브모듈, B에 포함된 서브모듈 3개임
     - 서브모듈 항목이 생성됨

4. 서브모듈 Push
     - 3개중 어느 한곳의 내용을 수정할 경우, 일괄 적용됨. 단, 로컬 작업은 별개로 남음.
     - 따라서, A, B 에서 서브모듈 C를 수정할 때, 동시에 작업하지 않도록 신중을 기해야 함. 
     - push전 pull을 통해 변경내용을 미리 가져오는것이 좋음. 
     
     4.1. C Repository에서 직접 내용 수정
            - 기존 방식과 동일
            - 각 A, B 에서 서브모듈 항목 더블클릭시, 별도의 소스트리 창이 생성되며, pull로 가져오기를 해야함. 

     4.2. A, B Repository에서 내용 수정
            - 각 A, B 에서 서브모듈 항목 더블클릭시, 별도의 소스트리 창이 생성되며, 여기서 Push 진행
            - 각 A, B 에서 서브모듈 항목 더블클릭시, 별도의 소스트리 창이 생성되며, pull로 가져오기를 해야함.