git으로 작업을 하다보면 간혹 다른 프로젝트의 폴더를 내 폴더 아래에 위치시킬 필요가 있는데요, 다른 프로젝트의 폴더 역시 git으로 관리되고 있다면 부모 프로젝트 밑에 자식 프로젝트가 위치하는 형상이 됩니다. 아래와 같이 말이죠. ^^;;;;

내 프로젝트 폴더
|----> 내 프로젝트의 폴더 및 파일들...
|----> 다른 프로젝트 폴더
        |----> 다른 프로젝트의 폴더 및 파일들...

이때 아무 생각 없이 git add로 다른 프로젝트의 폴더를 추가하면 내 프로젝트의 git과 다른 프로젝트의 git이 부모 자식 관계로 연결됩니다. 만일 부모 자식 관계가 아니라 완전하게 내 프로젝트에 포함시키고 싶어서 다른 프로젝트 폴더 내에 있는 .git 폴더를 삭제하고 나면 다른 프로젝트의 파일을 추가하거나 변경했을 때 아래와 같은 오류가 발생합니다. ㅠㅠ

$> git add "다른 프로젝트 폴더/파일.c"
Git: fatal: Pathspec is XXX in submodule

해결 방법은 아주 간단한데요, 부모 폴더로 가서 아래와 같이 cache를 삭제하고, 다시 프로젝트를 추가하면 됩니다.

$> git rm --cached "다른 프로젝트 폴더"
$> git add "다른 프로젝트 폴더"

아우, 깜짝 놀랐네요.

그럼 좋은 하루 되세요 ^^

+ Recent posts