본문 바로가기

GitHub에 잘못 올린 파일 삭제하는 방법 (feat. .vscode, .history)

@Jeeqong 2025. 4. 29. 04:35
반응형

 

서론

깃허브를 사용할 때 누구나 한 번쯤 겪는 실수가 있다.

바로 올리면 안 되는 파일을 무심코 푸시(push)해버리는 것.

나도 티스토리 스킨을 개발하면서 .vscode/, .history/, 심지어 .DS_Store 같은 불필요한 파일까지 함께 올려버린 경험이 있다.

처음엔 별 생각 없이 넘어갔지만, 레포를 깔끔하게 관리하고 싶다는 생각이 점점 강해졌다.

특히 오픈소스나 스킨처럼 남들에게 공개하는 레포지토리라면 더욱 신경 써야 하는 부분이다.

이 포스트에서는 실수로 올라간 파일이나 폴더를 깔끔하게 제거하는 방법을 소개하고자 한다.

같은 실수를 반복하지 않기 위해 정리해두자!


본론

문제 상황

로컬에서 깃허브에 푸시를 했는데 이런 파일이 올라가버렸다.

  • .vscode/ (IDE 설정 폴더)
  • .history/ (파일 수정 이력 기록용 폴더)
  • .DS_Store (macOS 시스템 파일)

이런 파일들은 프로젝트 실행에 필요 없고, 오히려 다른 사람에게 혼란을 줄 수 있다.

 

해결 방법

1. .gitignore에 추가하기

가장 먼저 해야 할 일은 .gitignore 파일에 무시할 대상을 추가하는 것이다.

.gitignore는 프로젝트 루트 디렉토리에 위치해야 하며, 커밋 이전에 설정하는 게 제일 좋다.

필요하면 GitHub에서 .gitignore 템플릿을 미리 참고해서 설정해도 좋다.

(예: GitHub/gitignore 레포지토리 참고)

예를 들어:

# .gitignore 파일에 추가
# IDE 설정
.vscode/
.idea/
.history/

# OS 특수 파일
.DS_Store
Thumbs.db

# 의존성/라이브러리
node_modules/
.env

이렇게 작성하면 앞으로 Git이 해당 파일들을 추적하지 않는다.

.gitignore 파일이 없다면 루트 경로에 새로 만든다.. 이미 있다면 맨 아래에 필요한 내용을 추가해주면 된다.

 

 

2. Git의 캐시에서 이미 추적 중인 파일 제거하기

하지만 문제는,

이미 푸시해서 올라간 파일들은 .gitignore만 추가한다고 사라지지 않는다!

그래서 다음 명령어로 Git 트래킹을 해제해야 한다:

git rm --cached -r .vscode .history .DS_Store
  • -cached 옵션: 로컬에는 파일을 남기고, Git 관리만 끊는 명령어다.
  • r 옵션: 폴더 안의 파일들까지 재귀적으로 처리한다.

 

3. 변경 사항 커밋 & 푸시하기

  • 트래킹 해제를 했다면 변경사항을 커밋하고 다시 푸시해야 한다:
  • 아래 명령어를 실행하면 깃허브에서도 해당 파일들이 사라진다.
git commit -m "🔥 Remove unwanted folders (.vscode, .history) from repo"
git push origin main

커밋 메시지에 “🔥” 같은 이모지를 넣으면 시각적으로도 한눈에 보이니 좋다!


한 번에 정리하는 명령어 정리(.gitignore 터미널로 무시할파일 추가하기)

# 무시할 파일 추가
echo -e ".vscode/\\n.history/\\n.DS_Store" >> .gitignore

# git 트래킹 해제
git rm --cached -r .vscode .history .DS_Store

# 커밋 및 푸시
git commit -m "Clean up unnecessary files"
git push origin main

추가로 .gitignore에 무시 설정을 했는데도 Git이 계속 파일을 트래킹하려고 할 때는?

git rm -r --cached .
git add .
git commit -m "♻️ Reset tracked files after .gitignore update"

이렇게 전체 캐시를 초기화해주면 .gitignore가 다시 적용된다.


마무리하며

처음엔 이런 실수가 민망하고 당황스러울 수 있다.

하지만 누구나 겪는 일이니까 너무 스트레스 받지 말자.

오히려 한 번 겪고 나면 레포지토리 관리 능력이 한 단계 성장하게 되는 거겠지.

사실 매번 격는 실수라서 결국 포스팅 하게됬다. 

익숙할때까지 Git 관리에 대해 더 많이 배우고 학습해야 될거 같다.

정리하자면:

  • 실수했더라도 걱정하지 말고 .gitignore를 수정하고,
  • git rm --cached로 트래킹을 끊고,
  • 커밋 후 푸시하면 깔끔하게 해결된다!

이 과정을 경험해본 나는 이제 진정한 깃 사용자다. 

 

 

반응형
Jeeqong
@Jeeqong :: JQVAULT

Jeeqong's vault : 정보/기록을 쌓아두는 공간 웹개발 포스팅 일상 리뷰를 기록하는 공간입니다.

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차