2012-07-15 4 views
3

내 git 리비전에 포함되지 않은 파일이 있다고 알았습니다. 암호, API 키 및 영업 비밀 문서 등.특정 파일/폴더를 git 리비전에서 삭제하십시오.

표시되는 수정본에서 해당 파일을 삭제하는 방법이 있습니까? 그리고 그 파일의 나머지는 여전히 그 개정판에 보관하시오.

답변

1

git filter-branch이 유용 할 수 있습니다. 이렇게하면 커밋 된 내용을 변경하여 일련의 과거 커밋을 다시 작성할 수 있습니다.

변경 사항이 로컬 저장소를 떠나 본 적이없는 경우이 작업이 수행됩니다. 문제를 일으키는 변경 사항을 어딘가에 푸시했거나 누군가가 내게서 빼앗긴 경우 의 모든 사람 저장소에서 문제를 해결할 수 있습니다.

git filter-branch --index-filter 'git rm --cached --ignore-unmatch bad-file1.txt bad-file2.txt' master..abc 

이는 :

  • git filter-branch을 :

    그러나, 당신의 로컬 저장소를 해결하기 위해의 일부 커밋을 다시 보자!

  • --index-filter : 실제로 디스크에서 체크 아웃하지 않고 각 커밋의 색인을 변경하십시오.

  • 'git rm --cached --ignore-unmatch bad-file1.txt bad-file2.txt' : 각 커밋에 대해 두 파일이 존재하면이를 제거하십시오.

  • master..abc :이 작업은 master 분기에서 분기 한 지점으로 되돌아가는 지점 abc의 모든 커밋에서 수행하십시오. 또한 "master~3"이라고 말하면 지난 3 회의 커밋 또는 다른 range of revisions을 다시 작성할 수 있습니다. "-- --all"(두 개의 대시, 공백, 두 개의 대시, "모두")을 사용하여 저장소의 모든 내용을 다시 쓸 수 있습니다.

+0

이것은 그 것이다. 고마워, 나는 실수로 로그 파일과 tmp 파일을 체크인했다 : / – Bill

관련 문제