2012-08-06 5 views
2

그래서 나는 git를 사용하여 대량의 파일을 대량으로 가져 왔습니다.로드 시간이 오래 걸리는 자식

그러나 그 후 git 데이터베이스에서 디렉토리를 제거하기 위해 git가 오랜 시간 동안 원본을 가져 오기 시작했기 때문에 git rm을 호출해도 문제가 해결되지 않았지만 git은 여전히 ​​원본을 가져 오는 데 오랜 시간이 걸립니다.

이 문제를 해결하기 위해 리포지토리를 다시 만드는 것 외에 무엇을 할 수 있습니까?

답변

2

자식이 모든 커밋의 역사를 유지하기 때문에 해당 콘텐츠는 고맙게도 소스의 repo가 ​​:

제거 과거의 역사를 다시 작성할 수 있습니다

에 좋은 정확히 무엇이다, (망할 놈의 repo에 기술적으로가 폴더에 대한 모든 참조.

http://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-a-git-repository

참고 :

이 사이트는 filter-branch를 사용하는 예를 가지고 당신은 역사를 다시 작성하는, 당신은 서버에 REPO를 밀어 강제해야합니다. 다른 사람들이 그것을 사용하거나 커밋하는 경우, 문제가 발생할 수 있습니다.

편집 : 주제에 대한 또 다른 흥미로운 읽기 : http://ramblinglabs.com/blog/2012/04/git-removing-sensitive-data-and-rewriting-history

0

git rm 실제로 당신이 저장소에 언급 한 모든 헤드의 현재 역사에 최선을 다하고 어떤 지점에 있었던 큰 개체를 제거하지 않습니다 (예를 들어, 지점 , 태그 등)

이 방법을 사용하면 느린 속도로 당길 수 있습니다. (내 경험상 큰 차이를 가져 오면 이후의 상황에서 빠르고 정상적으로 되돌아 가야합니다) , 의심스러운 경우 큰 차이가있는 커밋을 완전히 제거 할 수 있습니다 (git rebase).

일단 작업을 완료하면 git gc을 사용하여 분리 된 개체를 정리하고 전체 크기를 줄일 수 있습니다. rsync를 사용하면 원격 저장소이므로 강제로 밀어 넣기를 수행해야합니다.

관련 문제