Udemy에서 React 강의 진행중에 만든 프로젝트들을 일종의 tree 구조로 관리하고 싶었다.
알아보니 GIT에는 submodule이란 게 있어서 부모 레포의 커밋 내용과 자식 레포의 커밋 내용을 따로 관리할 수가 있다고 한다. 서브모듈로 만들어보자!
git init
을 실행하고 submodule을 추가했다.이 과정에서 깃헙에 올라간 나의 레포가 3개나 늘었다.. 근데 생각해보면 3개씩이나 올라갈 필요는 없는 것 같다. 그냥 하나의 레포지터리에서 관리하는 게 낫겠다. 그리고 사실 레포지터리명만 보면 어느 게 부모인지 자식인지 레포지터리간의 관계를 유추하기가 쉽지 않았다. 이게 가장 큰 문제였다..
처음엔 멋모르고 git submodule deinit /path/to/submodule
을 실행했다가 코드가 날아갔다. 자식 레포의 .git 파일(?)만 부모 레포의 .git 파일(?) 내부로 들어가고 코드가 날아감...
git submodule update
를 통해 살렸다.....
그러니까 결국 자식 레포는 .git 을 삭제하면 되는 거였고 부모 레포의 .submodules 파일은 삭제해주면 되는... 그런 문제였던 것 같다.
잘 안 돼서 git rm --rf --cached path/to/submodule
명령어로 캐시를 날리기도 해보았다. 유효했는지까지는 잘 모르겠다.