티스토리 뷰
안녕하세요 오늘은 하나의 레포지토리의 하위 폴더에 모듈을 생성하는 submodule 생성 법을 알아보고자 합니다.
저의 경우 Study라는 강의, 공부 전용 레포지토리가 있는데요. 해당 레포지토리의 하위폴더에서 서브모듈을 생성해 보겠습니다.
1. 기존 레포지토리 디렉터리로 터미널 접속
2. 서브모듈 생성
git submodule add https://github.com/[사용자 아이디]/[자식 저장소 명]. git [디렉터리 명]
eg. git submodule add https://github.com/AlgoRoots/tdd-unit-basic.git TDD-UNIT-BASIC
이 작업을 수행하면. gitmodules 파일이 생성되고. git/. config 파일에 서브모듈 관련 내용이 추가됩니다.
3. Status 확인 후 Commit and Push
git commit -m "Add submodule tdd-unit-basic"
git push
서브모듈 포함한 프로젝트 Clone
서브모듈이 포함된 프로젝트를 클론 하면 해당 디렉터리가 비어 있습니다. 서브 모듈의 내용을 가져오려면 아래 명령어를 입력합니다.
git submodule init
git submodule udpate
한 번에 서버모듈까지 가져오려면 clone 뒤에 --recurse-submodules 옵션을 붙이면 됩니다.
삭제
- . gitmoudules파일을 열어 관련 서브모듈 내용을 삭제
- . git/config파일을 열어서 관련 서브모듈 내용을 삭제
- git rm --cached <서브모듈폴더>
- commit
커밋 반영과정
case 1. 부모 프로젝트에서 자식프로젝트 내용 변경 후 반영
1. 서브모듈 생성한 디렉터리에 들어가는 순간 해당 레포로 바뀝니다. git log로 commit 내역 조회해 보면 서브레포 커밋과 같습니다.
2. 서브레포에서 새로운 커밋 생성
git commit --allow-empty -m "Add new commit"
3. 커밋 내역 확인
git log --pretty=short -1
4. 부모 레포지토리로 가서 상태확인
git status & git diff
5. 부모 레포에서 자식레포가 변경되었다는 커밋 생성
git commit -am "update submodule"
6. 자식레포에서 로컬 커밋 원격 레포에 반영
git push origin main
7. 필요하다면 부모레포경로에서도 반영
[부모 레포 경로에서] git push origin main
Reference
'git' 카테고리의 다른 글
[Github] 깃헙 협업시 refusing to merge unrelated histories (0) | 2022.05.23 |
---|---|
[github] dotenv 이용해 환경변수 만들기 for python (0) | 2022.03.02 |
[github] git commit 후 contribution 그래프 반영이 안될 때 (0) | 2022.02.12 |
[Git, Github] error: src refspec main does not match any 완벽 해결 (0) | 2022.01.20 |
[Git-Github] Github 디렉토리에 화살표 표시, 눌리지지 않음 문제. (2) | 2022.01.06 |
- Total
- Today
- Yesterday
- 네트워크
- 실전프로젝트
- python
- 클로저
- React Query
- 모두를 위한 컴퓨터 과학
- 모두를위한컴퓨터과학
- 자바스크립트 클로저
- 자바스크립트 비동기 처리
- 자바스크립트
- React
- reactquery
- 알고리즘자바스크립트
- network
- 프로그래머스
- cs50
- html
- 무한스크롤
- 리액트
- 리액트네이티브
- 백준
- github
- GIT
- 타입스크립트
- 프로그래머스 베스트앨범 자바스크립트
- css
- 프로그래머스 자바스크립트
- 항해99
- javascript
- 자바스크립트알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |