[Git] Changes not staged for commit (modified content, untracked content) 깃 서브모듈 인식 문제
문제상황
위와 같이 commit 진행시 위와 같은 메시지가 뜨면서 실제로 push를 하면 일부 디렉토리가 제대로 repo에 저장되지 않는 문제가 발생.
메시지에서 보이는 client 디렉토리가 제대로 연동되지 않는 현상임.
git status
깃 상태를 조회해보면 마찬가지 메시지를 볼 수 있음.
메시지 중에
commit or discard the untracked or modified content in submodules
즉, 서브모듈로 뭔가 인식하고 있는 것!!!
1. .git 폴더 확인
find . -name '.git'
find ./ -name '.git'
find -name '.git'
위 세가지 명령어는 동일한 결과를 보여줌
즉, 현재 위치하는 폴더부터 하위 노드를 모두 찾아가면서 '.git' 이라는 파일이 존재하면 경로를 출력해줌.
많이들 특정 모듈이 어디 설치되어 있는지 알아볼 때
find / -name '알고싶은모듈명'
으로 루트에서부터 검색하는 것 많이 써봤을거임 ㅇㅇ(위사진처럼)
우리는 현재 위치하는 디렉토리의 '.git' 폴더만 사용하고 하위 디렉토리에 있는 '.git' 은 서브모듈로 인식하지 않도록 삭제할 필요가 있는것임..
위와같이 -mindepth 2 를 중간에 옵션으로 쳐주면 자식노드부터 검색함.
2. 하위 .git 폴더 모두 삭제
뭐 일일이 직접 rm -rf 지울파일경로
이렇게 지워도 금방 할테지만 좀더 멋있게 하려면
find ./ -mindepth 2 -name '.git' -prune -exec rm -rf {} +
확인하니 자식노드들의 '.git' 파일들이 모두 지워졌음!
3. git push 실행
이제 안심하고 다시 add > commit > push 를 진행하면 깔-끔