네, 맞습니다. 로컬에서 폴더 구조를 완전히 변경하고 push하면 GitHub에 있던 기존 파일과 폴더도 삭제됩니다.github+1
Git의 변경 추적 방식
Git은 **스냅샷이 아닌 변경 이력(history of changes)**을 관리합니다. 따라서 로컬에서 파일을 삭제하면 Git은 이를 “삭제 변경사항”으로 인식하고, commit 후 push하면 원격 저장소(GitHub)에도 동일하게 반영됩니다.stackoverflow+2
예시 시나리오:
# 로컬에서 기존 폴더 구조 전부 삭제하고 새로운 구조로 재구성
git add .
git commit -m "Restructure entire project"
git push origin main
이렇게 하면 GitHub의 fork된 repository에서도 기존 파일/폴더가 사라지고 새로운 구조만 남습니다.
Fork한 경우 추천 방법
질문하신 것처럼 완전히 다른 프로젝트로 마이그레이션했다면, fork 관계를 유지하는 것은 의미가 없습니다. GitHub 공식 문서 및 커뮤니티에서는 두 가지 방법을 제시합니다.
방법 1: Fork 분리 요청 (추천)
GitHub Support에 “detach fork” 요청을 보내면 fork 관계를 끊고 독립적인 repository로 전환할 수 있습니다. 이 방법은 기존 stars, issues, PR 등을 모두 보존하며, 최근에는 1일 이내에 처리됩니다.[stackoverflow]
-
장점: 기존 통계와 이력 유지, 원본 repo와의 혼동 방지
-
단점: GitHub Support 응답 대기 필요
방법 2: 새 Repository 생성 (즉시 적용)
완전히 새로운 repository를 만들어 코드를 push하는 방법입니다.[stackoverflow]
# 1. GitHub에서 새 repo 생성 (예: new-project)
# 2. 로컬 repo의 원격 저장소 변경
git remote remove origin
git remote add origin https://github.com/yourusername/new-project.git
# 3. 새 repo에 push
git push -u origin main
-
장점: 즉시 적용 가능, 원본과 완전히 독립적
-
단점: 기존 fork의 stars, watchers, issues 등이 사라짐[stackoverflow]
결론
마이그레이션으로 프로젝트 성격이 완전히 바뀌었다면 새 repository를 만드는 것이 가장 깔끔합니다. fork 관계가 남아있으면:
-
GitHub 검색에서 노출이 잘 안 됨[stackoverflow]
-
원본 repository와 연결되어 혼동 가능
기존 fork에 stars나 contributors가 많다면 방법 1(detach fork)을, 그렇지 않다면 방법 2(새 repo)를 선택하세요.