GitHub에서 ‘Ghost Folder’ 문제 해결: 손상된 서브모듈을 일반 폴더로 변환

발행: (2025년 12월 27일 오전 07:53 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

Overview

코드를 GitHub에 푸시했을 때 흰색 화살표가 있는 폴더 아이콘이 보이고 클릭해서 들어갈 수 없었다면, 혼자가 아닙니다. 이는 보통 해당 폴더가 Git 서브모듈로 취급될 때 발생합니다(대개 중첩된 레포지토리 때문). 아래는 깨진 서브모듈을 일반 폴더로 변환하는 단계별 가이드입니다.

The Anatomy of the Problem

화살표 아이콘은 Git이 해당 디렉터리를 서브모듈이라고 인식한다는 뜻입니다. 이는 새로운 프로젝트(예: create‑react‑app으로 만든 React 앱)를 기존 Git 레포지토리 안에 초기화할 때 흔히 발생합니다. 새 프로젝트는 자체 숨김 .git 폴더를 가지고 있어, 상위 레포지토리가 해당 디렉터리를 별도의 레포지토리로 취급하게 됩니다. 서브모듈이 GitHub에 올바르게 연결되지 않으면 폴더가 비어 보이고 클릭할 수 없습니다.

Step 1: Locate the Root Project

모노레포의 루트 디렉터리로 이동합니다. 예시:

project-root/
├── backend_folder/   # Go backend
│   └── main.go
├── my-app/           # Expo / React Native app

project-root/에서 다음 명령을 실행해 Git이 my-app/을 서브모듈로 추적하지 않도록 합니다:

git rm --cached my-app

이 명령은 인덱스에서 서브모듈 항목을 제거하지만 파일은 삭제하지 않습니다.

Step 2: Delete the Internal Git Data

서브모듈 내부에 있는 숨김 .git 디렉터리(또는 파일)를 삭제해 독립적인 레포지토리 역할을 하지 않게 합니다:

Remove-Item -Recurse -Force my-app/.git

Note: 내부 Git 데이터가 다른 위치에 있다면 경로를 조정하세요.

Step 3: Re‑add and Push

내부 Git 데이터가 사라졌으니, 폴더를 다시 상위 레포지토리에 추가하고 커밋한 뒤 푸시합니다:

git add my-app/
git commit -m "Fixed: converted submodule to a normal directory"
git push origin

이제 원격 레포지토리는 모든 파일과 폴더를 하나의 Git 히스토리 안에 저장합니다.

The End Results

New repo


읽어 주셔서 감사합니다! 이 팁이 GitHub에서 “유령 폴더” 문제를 해결하는 데 도움이 되길 바랍니다. 의견이 있으면 자유롭게 공유해주세요.

Back to Blog

관련 글

더 보기 »