Git / GitHub 강의 정리-36
Submodules
프로젝트 폴더 안에 또 다른 프로젝트가 포함될 때 사용
여러 프로젝트에 사용되는 공통 모듈일 때 유용함
Submodules 사용을 위한 프로젝트 생성
1. 메인 프로젝트 생성
- 프로젝트 생성 후 파일 생성 - git init로 git이 관리하도록 지정
- 커밋
2. 서프 모듈 프로젝트 생성
- 프로젝트 생성 후 파일 생성 - git init로 git이 관리하도록 지정
- 커밋
3. 메인 프로젝트와 서브 모듈 모두 github에 레포지토리 만들어 올리기
- or github에서 생성
2. 깃헙에서 서브모듈 프로젝트 만들기
main_project에 서브모듈로 submodule 프로젝트 추가하기
# main_project 디렉토리의 터미널에서 아래 명령어 실행
git submodule add (submodule의 GitHub 레포지토리 주소) (하위폴더명, 없을 시 생략)
main_project와 submodule에서 각각 변경사항 commit 후 push 후 결과 확인
1. main_project와 submodule에서 수정사항 저장 후 main_project에서 status 확인
- 두 변경사항 모두 확인됨
2. main_project에서 git add . 후 status 확인
- submodule의 변경사항은 포함되지 않음
- main_project의 깃은 submodule의 파일에 관여하지 않음
3. commit, push 후 github 확인
- main_project의 변경사항만 반영된 것 확인
submodule의 변경사항을 반영하고자 하는 경우
1. 터미널 추가로 열기
- cd submodule/로 submodule의 깃 사용하도록 지정
2. git status 확인
3. git add .
4. commit 후 push
5. submodule의 레포지토리 확인
- submoldule에 변경사항 반영 확인
submodule 프로젝트에 변경사항 반영 후 main_project 확인
1 main_project에서 status 확인
- submodule에서 변경사항이 있음을 확인
2. add 후 status 확인
- submodule의 commit된 변경사항을 main_project의 git에서 관리함
( submodule 프로젝트의 변경사항 관리, commit되지 않은 파일의 변경사항은 관리하지 않음 )
3. commit 후 push
4. main_project 레포지토리 확인
- submodule의 commit된 변경사항 반영 확인
다른 곳에서 프로젝트 클론 후 서브모듈 업데이트하는 경우
1. main_project 새로운 곳에 clone 하기
- 원하는 폴더 안에서 git bash here 클릭
- git clone (프로젝트 주소)
2. vscode 새 창에서 클론한 프로젝트 열기
- submodule의 파일은 받아오지 않음 (서브모듈이 필요한 경우 필요한 서브모듈 받아와야 함)
3. 서브모듈 init 후 클론
- git submodule init (특정 서브모듈 지정시 .gitmodules 파일 내의 해당 이름)
- git submodule update
4. github에서 서브모듈에 변경사항 커밋하기
5. main_project에서 git submodule update --remote 로 변경사항 받아오기
- main_project의 변경사항을 받아올 경우 git pull 하기
- 서브모듈 안에 서브모듈이 있는 경우
- git submodule update --remote --recursive 로 변경사항 받기
강의 섹션 12. Git의 추가 기능들 ( 2 )
'TIL 기록 > git_github' 카테고리의 다른 글
오픈소스 참여 / fork (0) | 2024.10.28 |
---|---|
pull request / Issue (1) | 2024.10.28 |
Git Hooks, gitmoji-cli 활용 (0) | 2024.02.08 |
git bisect 오류발생 시점 찾기 (0) | 2024.02.01 |
git blame 코딩 작성자 확인 (0) | 2024.01.26 |