Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
46 lines (38 sloc) 1.92 KB
layout title aside tags category author published key
article
GitHub, 원격 저장소에서 원하는 파일 이전 기록까지 모두 제거하기
toc
true
Programming
Programming
melonicedlatte
true
2019-04-20-031700

문제

github를 사용하다 보면 이전에 불필요한 파일이 올라갈 때가 있습니다. 이럴 때, 이전에 올라간 파일을 github에서도 제거를 하고 싶은데, 파일만 지우고 commit 을 하게 되면 이전 commit 에서 해당 문제점을 확인할 수 있습니다.

문제가 있는 파일을 모두 제거해야 하는데 이럴때에는 아래와 같은 해결 방법을 사용합니다. 기본적인 내용은 아래의 내용을 참조해서 포스팅했습니다. 저는 Git에 내장된 filter-branch툴을 사용하는 방법만 포스팅하고,다른 방법으로는 BFG Repo-Cleaner를 사용하는 방법이 있습니다. http://minsone.github.io/git/github-advanced-remove-sensitive-data

해결방법

가령 비밀번호가 들어간 파일이라던가 폴더 전체를 제거해야 하는 경우가 있습니다.

파일

$ git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch 파일명' \
  --prune-empty --tag-name-filter cat -- --all

디렉토리

$ git filter-branch --force --index-filter \
  'git rm -r --cached --ignore-unmatch 폴더명' \
  --prune-empty --tag-name-filter cat -- --all

이렇게 되면 로컬에 있는 저장소에 있는 이전 commit 들에서 파일이나 폴더가 전부 제거됩니다.

원격 저장소에 반영하기

$ git add *
$ git commit -m "delete before files"
$ git push origin master --force

그 이후, 위와 같이 push 명령어에서 --force 를 추가하여 push 해주면 원격 저장소에서도 잘 반영됩니다.

You can’t perform that action at this time.