2014-04-03 3 views
1

큰 파일을 삭제했습니다. 이제이 큰 파일을 내 로컬 .git에서 가져 오십시오. 따라야 할 단계는 무엇이 효과가 있을까요? 커밋 히스토리에서 파일을 완전히 제거하는 방법은 무엇입니까?

내가 시도 :

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch$files" HEAD 

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch $file' --prune-empty --tag-name-filter cat -- --all 
+0

명령 '자식 필터 분기 --force --index 필터'자식 RM --cached --ignore-UNMATCH $ Rakefile '--prune- 비어있는 - 태그 - 이름 - 고양이 고양이 - --all' 나를 위해 작동합니다. repo-root 디렉토리에 있고 $ Rakefile은 제거 할 파일의 상대 경로를 포함합니다. 'linux, git version 2.6.4'. – dr0i

답변

0

당신이 찾고있는 마법의 자식 명령이 git filter-branch입니다, 당신은 당신의 자식의 repo를 편집 할 수있다. 섹션의 첫 번째 예는 다음

Suppose you want to remove a file (containing confidential information 
    or copyright violation) from all commits: 

     git filter-branch --tree-filter 'rm filename' HEAD 
+0

새 백업을 만들 수 없습니다. 이전 백업이 이미 refs/original/ 에 존재합니다. 백업을 -f – Paul

+0

으로 강제 덮어 씁니다. '-f'를 추가하면 해당 매개 변수가 강제로 처리되므로 강제로 'git filter-branch -f --tree-filter' RM 파일 이름 'HEAD' – dr0i

관련 문제