-
Github 민감한 커밋 히스토리 삭제 (git ignore, git filter-branch)기타 2022. 7. 14. 00:21반응형
개발을 하다보면 git에 올리고 않지 않거나 올리면 안되는 민감한 파일들이 있는데
이 파일들은 .gitignore 설정파일에 추가하면 자동으로 git 버전 관리에서 제외된다.
기존 프로젝트에 git ignore 설정하기
프로젝트를 시작할 때 git ignore을 설정하면 제일 좋지만,
이미 프로젝트가 진행되었을 경우 기존 프로젝트에 .gitignore를 적용하는 방법도 있다.
1) .gitnore 파일에 숨기고자 하는 파일명을 추가한다.
2) 원격 저장소에 있는 파일들을 삭제하고, git ignore이 적용된 로컬 파일을 다시 커밋한다.
git rm -r --cached . git add . git commit -m ".gitignore 적용하기"
3) 푸쉬한다.
민감한 정보가 담긴 커밋 내역 삭제하기
하지만 민감한 정보를 이미! 실수로 푸쉬했다면,
git ignore로 민감한 정보를 담은 파일을 없앤다해도 푸쉬를 했기 때문에 git 히스토리에는 여전히 수정 내역으로 남아있다.
이럴 경우 git history에서 해당 파일에 대한 커밋을 모두 삭제할 수 있는 방법이 있다.
1) git filter-branch 명령어를 사용해보자
git filter-branch 명령어는 필터를 제공해서 필터에 적용된 파일만 가지고 히스토리를 다시 구축하는 것을 말한다.
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch '[파일경로]/[파일명]'" --prune-empty --tag-name-filter cat -- --all
2) 강제로 푸쉬한다.
git push origin main -f
반응형'기타' 카테고리의 다른 글
[GIT] fatal: 'origin' does not appear to be a git repository 에러 해결 (0) 2021.04.14 오버라이딩(overriding)과 오버로딩(overloading)이란 (java) (0) 2021.04.02 내가 보려고 정리하는 java 개념 코드 정리 (0) 2021.04.02 [MAC] 터미널(terminal)에서 파인더(finder) 열기 (0) 2021.01.31 [mac os] 리눅스 서버 파일업로드 명령어 (0) 2020.11.16