나는 최근에 내가 민감한 정보를 담고있는 .env
파일을 우연히 저지른 것을 발견했다. 내 생각 엔 Webstorm이 생성 한 파일을 .gitignore
파일에 즉시 추가했기 때문에 실수로이 파일을 git에 추가 할 것인지 묻는 메시지가 나타나면 실수로 OK (확인)를 클릭 한 것입니다. 나는이 파일이 몇 주 동안 지속적으로 VCS로 보내지는 것을 알지 못했다. 즉시 git rm --cached .env
을 실행하고 BFG-Repo Cleaner을 사용하여 내 버전 기록에서 파일을 제거했습니다. 문제는 BFG-Repo Cleaner가 작업을 수행했지만 (이상하게도 모든 커밋이 이제 복제 됨) 파일이 내 커밋 내역에 더 이상 존재하지 않기 때문에 실제로 파일을 제거한 커밋에서 제거 된 항목이 정확히 표시된다는 것입니다. 암호 및 키. 이것은 BFG-Repo Cleaner를 실행 한 결과입니까? 만약 그렇다면, 그 커밋을 잃어 버리지 않고 그 커밋을 역사에서 어떻게 제거 할 수 있습니까? 내가 찾을 수있는 대부분의 대답은 git reset --hard
을 사용하여 내가 제거하고 싶은 것보다 먼저 커밋으로 되돌아가는 것을 가리킨다. 그러나 그 시점 이후에 내 일을 잃고 싶지는 않다.내역에서 중요한 정보가 들어있는 커밋 제거하기
버전 히스토리에서 중요한 데이터를 제거하도록 설계된 도구가 민감한 데이터가 제거 된 커밋의 diff
을 계속 표시한다는 것이 이상합니다.
BFG-Repo-Cleaner는 git-filter-branch
의 쉬운 대안처럼 보였으 나 여기서는 git-filter-branch
을 사용하는 유스 케이스가 있습니다. 파일을 제거하는 것이 아니라 파일의 내용을 보여주는 커밋을 제거하십시오. 내가 제거한 파일?