git에 env 파일을 실수로 올려버렸다.
최근 사용한 프로그램은 돈이 나가는 프로그램이라 env 파일을 빨리 삭제해야했다.
그래서 검색해보니 명령어는 다음과 같았다.
git rm .env --cached
git add .
git commit -m "remove .env file from git"
git push
이렇게 해서 env 삭제는 되었지만... commit한 history에 내 env 파일이 남아있었다. 엉엉
파일만 삭제하려고 보니, delete 버튼이 비활성화가 되어 있어서 삭제하지 못해서 인터넷에 다시 검색해보았다.
찾아보니 git history에서 특정 파일을 삭제할 수 있는 명령어가 있었다!..
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" --prune-empty --tag-name-filter cat -- --all
여기 PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA에 해당하는 파일이나 폴더를 작성하면 된다.
- 파일의 경우 ./파일명.js 등으로 작성해야한다. (env의 경우엔 .env)
- 폴더의 경우 -r option을 추가로 작성해야한다.
이렇게 터미널에 명령어를 입력하면 다음과 같은 결과가 뜬다.
이것은 내가 했던 모든 커밋에 해당 파일(혹은 폴더)에 대한 커밋이 있는지 찾아내는 과정인 듯하다. 해당 과정이 끝나면 git에 push 해주면 관련된 commit이 사라지게 된다.
git push origin --force --all
결과를 확인해보니 잘 삭제가 된 것 같다.
출처
반응형
'협업툴 > Git' 카테고리의 다른 글
[Git] 회사에서 Git 사용하는 법 (feat. 학교 선배) (1) | 2021.12.26 |
---|---|
[Git] 기존 Repository 무시하고 새로운 Project로 덮어쓰기 (+ branch 변경하기) (0) | 2021.10.09 |
[Git] 기본 개념 정리 (0) | 2021.07.23 |
[Git] Push시, "현재 브랜치 master에 업스트림 브랜치가 없습니다." 오류 (0) | 2021.07.23 |
[Git] Push시, "Remote 저장소에서 읽을 수 없습니다." 오류 (0) | 2021.07.23 |