git submodule
[git subtree](https://texonom.com/git-subtree-2f941996b93045c7bca81f86d9b8090d) [Josh Workspace](https://texonom.com/josh-workspace-ca80111eb5ce48de9b92427f4c223391) 


### 중첩된 Repository를 관리하기 위해 GIT에서 제공하는 기능

[git submodule init](https://texonom.com/git-submodule-init-a100c2b6d99f46879ffb0cf906c08760)

subtree는 프로젝트 dependency가 있어서 합쳐야 할 때
submodule은 루트단위로 관리할 필요가 없고 폴더별 nested하고 싶을 때,  따로 관리해도 될 때 dependency가 없을 때


서브모듈 루트 디렉토리의 경로와 원격 저장소의 주소를 관리
- 서브모듈을 Slave Repository
- Slave Repository의 변경사항이 있는 경우 Master 및 Slave 각각 두 번의 Commit
> Commit은 반드시 Slave → Master의 순서
- Slave Repository는 Master Repository가 바라볼 때 Abstraction되는 방식으로 관리됩니다. 즉, Master Repository에서 Commit을 할 때 Slave Repository의 변화는 1개 변경사항으로 축약되어 추적(Tracking)



> [[GIT] Submodule (Nested Repository) 사용하기 - ECE - TUWLAB](https://www.tuwlab.com/ece/26011)

> [How to use git subtree to add local repo?](https://stackoverflow.com/questions/37775092/how-to-use-git-subtree-to-add-local-repo)

> [Git subtree를 활용한 코드 공유](https://blog.rhostem.com/posts/2020-01-03-code-sharing-with-git-subtree)






