문제상황



위와 같이 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 를 진행하면 깔-끔



'Git' 카테고리의 다른 글

[Git] 자주쓰는 깃 명령어 모음  (0) 2018.04.13
블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,