명령어로 간지나게 휘리릭 하면 참 좋겠지만, 뭐랄까 윈도우 사용자에게 git이란 평소에 cmd를 이용하는 사람이 아니라면 여전히 익숙하지 않습니다. 그래서 저는 ui가 있는 git인 TortoiseGit을 사용해서 소스 코드 형상관리를 합니다. 오늘 포스팅할 내용은 독립된 저장소로 운영되지만 하나의 프로젝트 안에 서브 저장소 형태로 구성할 수 있는 submodule에 대한 내용입니다. 저장소를 우-클릭해서 submodule add를 누르면 repository 경로와 path를 입력하라고 나오는데, 저 같은 경우에 repository는 잘 써줬는데 path를 엉뚱하게 써줘서 자꾸 에러를 뱉었습니다. 절대 경로, 상대 경로 모두 인식한다고 했는데 멍청하게 저장소 이름까지 넣지 않았습니다. 즉, 절대(상대)경로\디렉토리 명까지 적어줘야합니다. submodule을 추가하면 저장소 메인에 .gitmodules라는 파일이 만들어지고, 그 안에 submodule 정보가 자동으로 기록됩니다.
[submodule "경로"]
url = git@주소/저장소.git
git은 이 정보로 submodule을 관리합니다. 문제는 submodule로 작업 하다보면 가끔 꼬여서 문제가 생기거나 제거를 해야할 필요가 있습니다. 제대로 알아보지 않고 이것저것 막 누르다가 제대로 지워지지 않기라도 하면 다시 추가할려고 할 때 깊은 빡침을 느낄 수 있습니다. 먼저, 웹에서 저장소를 Clone하면 숨김 폴더로 .git 폴더가 있는데 이곳은 로컬 저장소입니다. (.git/config) 파일을 열어보면 이곳에도 submodule 정보가 있습니다. 이 정보를 제거한 후에 modules 폴더에 submodule 폴더가 있는지 확인해서 지워줘야 완벽하게 submodule이 제거됩니다.
정리하면,
1. submodule 저장소 삭제
2. (.gitmodules) 파일에서 submodule 정보 제거
3. (.git/config) 파일에서 로컬 저장소 submodule 정보 제거
4. commit & push
댓글 없음:
댓글 쓰기