
강의에서 배운내용을 내 깃에 올리기위해 기존에 생성해둔 레파짓에 푸쉬를 하려했다. 기존레파짓에는 transition이라는 폴더만 푸쉬해놓은 상태였고 이번에 animation폴더를 푸쉬했는데 화살표폴더로 뜨면서 클릭이 되지않는 비정상적인 상황이 생겼다.

형광팬표시를 확인하면 기존에 잘올라간 폴더랑 다른 아이콘이 뜨는것을 알수있다. (화살표폴더)
저장소에 하위 저장소가 생겼기 때문이다. 즉, 문제의 폴더 안에 .git파일이 있는것이다.

프로젝트 최상위폴더에 .git이 있는 건 맞지만 animation폴더안에도 .git파일이 생성되었고 해당폴더에 하위저장소가 생겨서 이러한 문제가 발생한 것이다.
먼저 깃에 잘못올라간 화살표폴더를 삭제해줘야했다.
깃헙 폴더 삭제 명령어
git rm --cached -r [폴더명 or 파일명]
여기서 --cached는 원격저장소의 폴더 또는 파일을 삭제한다고 알려주는 옵션이다. 만약 --cached가 없으면 로컬저장소의 폴더 또는 파일도 삭제한다. 그런데 로컬저장소에서는 꼭 필요한 파일이거나 폴더일 수 있기 때문에 잘 판단해서 --cached를 넣어줘야 한다. 여기서 로컬저장소에서 꼭 필요한 파일이나 폴더에는 코드를 실행하기 위해 꼭 필요한 패키지, 라이브러리, 실행파일 같은 것들이다. 그러나 개발환경이 조금씩 다른 협업자들을 위해서 이러한 파일이나 폴더는 보내지 말아야 한다.
또한 -r은 폴더명이 주어졌을 때 recursive removal을 허용하게 해주는 옵션이다. 폴더 안에 폴더 및 파일들이 존재할 때 모두 지워주겠다는 의미다.
명령어 실행 이후(git rm --cached -r)
해당 명령어 실행이후 커밋과 푸쉬를 해줘야한다.

이렇게 내 레파짓에서 화살표 폴더인 animation이 제거된것을 확인할 수 있었다.
원래 저장소가 main폴더이고 문제폴더는 Sub폴더라고 치면 두 폴더 모두 .git파일이 있는 것을 확인할 수 있다.
문제 폴더안의 .git파일을 삭제한다.
Sub폴더에서 커맨드창(bash창)을 열고, 다음과 같이 명령
$ git rm --cached . -rf
이제 다시 add, commit, push를 해보니 폴더가 정상적으로 올라가 문제가 해결되었다.
