git 폴더의 크기를 줄이는 방법이 있습니까? 점점 커지고있는 것처럼 보입니다 commit/push.

내 프로젝트가 모든 자식마다 점점 커지고있는 것처럼 보입니다 commit/push. 내 자식 폴더를 정리하는 방법이 있습니까?



답변

당신이 원하는 것이 확실하지 않습니다. 우선 커밋 / 푸시 할 때마다 디렉토리는 추가 커밋을 각각 저장해야하기 때문에 디렉토리가 약간 커집니다.

그러나 git gc“불필요한 파일을 정리하고 로컬 리포지토리를 최적화합니다”( 매뉴얼 페이지 ) 를 원할 것 입니다.

다른 관련 명령은 트리에서 추적되지 않은 파일을 삭제git clean 하는 것 입니다 ( manual page ).


답변

운영:

git remote prune origin

에서 이미 제거 origin되었지만 에서 로컬로 여전히 사용 가능한 모든 부실 추적 분기를 삭제합니다 remotes/origin.

git gc --auto

G arbage의 C의 ollection’- 실행 가사 작업 (찜질 개정 제거합니다은 / 액세스 개체를 풀어). --auto플래그는 먼저 어떤 작업이 필요한지 여부를 결정하고, 그렇지 않으면 아무것도하지 않고 종료합니다.


답변

커밋마다 git repo가 심각하게 커지는 시나리오 는 정기적으로 생성하는 바이너리 파일을 커밋하는 시나리오 입니다. 그들의 저장 공간은 텍스트 파일보다 효율적이지 않습니다 .

또 다른 당신이 내 파일의 거대한 숫자를 하나 하나 (A입니다 REPO 자식의 한계 (대신 여러 subrepos의) 서브 모듈로 관리 ).

git space에 대한기사에서 AlBlue는 다음과 같이 언급합니다.

Git (및 Hg 및 기타 DVCS)은 (큰) 바이너리가 체크인 된 다음 삭제되는 문제로 어려움을 겪습니다. 현재 저장소가 아닌 경우에도 저장소에 표시되고 공간을 차지합니다. .

git repo에 큰 바이너리가 저장되어 있다면 다음을 고려할 수 있습니다.

내가에서 언급 한 바와 같이 ” 무슨 망할 놈의 파일 제한 (개수 및 크기)?이다 더 최근”(2015 년이 답변 후 5 년) 힘내 LFS GitHub의에서 그들을 저장하여 (그 큰 파일을 관리 할 수있는 방법입니다 외부 Git 저장소).


답변

git gc, 자연스럽게 해결책입니다.

로컬-로컬 저장소를 삭제하고 다시 복제 할 수 있습니다.

그러나 여기에 더 중요한 것이 있습니다 …

거대한 git & externals가 처리 될 때까지 기다리는 시간 (초)은 몇 분 동안 비효율적 인 시간으로 수집됩니다.

새로 만들기 (전체뿐만 아니라 지점) 처음부터 저장소 파일의 유일한 최신 버전을 포함하여, 자연스럽게 모든 역사를 잃어 버릴 것이다,

그러나 코드 세계에서 감상적이 될 때가 아닌 경우, 모든 커밋 또는 diff마다 5 년 동안의 코드 전체를 끌고 다니는 지점이 없습니다. 그리워하는 경우 오래된 git & externals를 어딘가에 저장할 수 있습니다 :]

그러나 어느 시점에서 당신은 정말로 따라 움직여야합니다 :]

당신의 팀은 당신을 감사합니다!


답변

이 명령을 실행하는 것은 매우 위험하지만 모든 git 복구 / 백업 파일을 지우면 리포지토리가 축소됩니다.

git reflog expire --expire=now --all && git gc --prune=now --aggressive

git이 나쁜 명령에서 저장소를 복구하는 데 사용하는 모든 파일을 지 웁니다 (예 : 수행 한 경우 git reset --hard일반적으로 손실 된 파일을 복구 할 수 있음). 그러나 명령을 git reset --hard내리기 전에 git reflog expire...모든 것을 잃어 버렸습니다. 이제 유일한 희망은 파일 시스템을 분석하고 지워지지 않은 파일이 재정의되지 않은 경우 복구하려고 시도하는 도구를 사용하는 것입니다.


답변

git clean -d -f -i 가장 좋은 방법입니다.

보다 통제 된 방식으로 청소하는 데 도움이됩니다.

-i 대화식을 나타냅니다.


답변

그것이 축소되는지 알지 못하지만 실행 한 후에도 git clean종종 수행 git repack -ad하므로 팩 파일 수가 줄어 듭니다.