Git submodule

ohmy0418·2021년 7월 2일
0

Git

목록 보기
2/3
post-thumbnail

서브모듈 등록하기

submodule을 폴더 내에 어디에 위치시킬지 등록한다.
처음 레파지토리에 등록하면, 이후 다른 작업자는 등록할 필요없다.

git submodule add https://github.com/gnuoy-oh/test frontend/src/assets/style-core

커밋하기

서브모듈 등록, status 확인 후 commit!

git commit -m 'Added: core-style module'

서브모듈 초기 설정

처음 서브모듈이 추가된 내용을 받아오면 서브모듈 디렉토리가 비어있다. 아래 명령어로 서브모듈 내용을 가져온다.

git submodule init
git submodule update

서브모듈 업데이트 하기

작업 중 서브모듈의 변경사항을 업데이트 해오는 명령어.
test 저장소의 main 브랜치를 참조해 가장 최근 커밋을 업데이트 해온다.

$ git submodule update --remote
From https://github.com/gnuoy-oh/test
   bb8195d..4f903ac  main       -> origin/main
Submodule path 'source/frontend/src/style-core': checked out '4f903acf48e0a5502830eeda15bdd15f6a48c60e'

루트 디렉토리 (/test)에서 아래와 같이 작성하면 style-core 서브모듈만 콕 찝어 업데이트 할 수 있다.

git submodule update --remote source/frontend/src/assets/style-core

그렇지만, 서브모듈이 코어 디자인 하나만 등록된 프로젝트라면 위의 git submodule update --remote 명령어를 사용해도 괜찮다!

변경 내용 확인하기

업데이트 한 서브모듈의 커밋 내역을 확인한다.

git diff --submodule

위 명령어를 입력하면 새로운 화면에 아래와 같이 서브모듈로부터 업데이트 해 온 커밋명이 출력된다.

Submodule source/frontend/src/style-core bb8195d..4f903ac:
  > Merge pull request #72 from gnuoy-oh/dev (커밋)
(END)

q 를 눌러 빠져나온다.

변경 내용 Push하기

변경 내용을 확인했고 이상이 없다면 커밋을 남기고 원격 저장소에 Push 한다.

커밋을 작성할 때는 프로젝트를 수정한 내용과 서브모듈을 업데이트한 내용이 섞이지 않도록, 업데이트 즉시 커밋을 남기는 것이 좋다.

커밋 메시지는 Changed 프리픽스를 사용하고, 어떤 커밋을 기준으로 merge 했는지도 함께 기록 한다.

git commit -m"Changed: style-core (IDC@4f903ac)"

branch 에러 발생시

브랜치 origin/master 가 origin/main 으로 바뀌어서 발생한 이슈로, 아래와 같이 터미널에서 출력되었다.

fatal: Needed a single revision
Unable to find current origin/master revision in submodule path 'source/frontend/src/assets/style-core'

아래와 같이 submodule 브랜치를 변경한다.

git config -f .gitmodules submodule.source/frontend/src/assets/style-core.branch dev

Reference

참고

profile
이것저것 정리하는 공간

0개의 댓글