.git 폴더가 너무 큽니다.

1732 단어 도구류

문서 목록

  • 이유
  • 솔루션
  • 1 엔지니어링 마이그레이션
  • 2 신규 브랜치 생성
  • 3 삭제 기록
  • 까닭


    잦은 삭제,commit 이후에.git 파일이 너무 큰 경우
    이럴 때는 이전의 역사 버전을 철저히 정리해야 한다. (즉 현재 버전만 보존하고 다시 굴러갈 수 없다는 것이다)

    해결 방법


    1 엔지니어링 마이그레이션


    중심 사상은 새로운 프로젝트를 창설하여 기존 코드를 복사하는 것이다
  • 새 프로젝트 생성, 기존 코드 복사
  • git init새 창고 만들기
  • git remote add origin url 원격 웨어하우스 주소 추가
  • git add . git commit -m "message"
  • 저장소 강제 업데이트git push -f origin master
  • 주의: 원격 창고를 강제로 업데이트하는 것이 틀림없습니다. 원래의git 기록이 더 이상 존재하지 않기 때문에 직접push는 충돌이 있습니다.

    2 새 브랜치 생성


    방법은 우선 하나의 지점을 세운 다음에 마스터 버전을 삭제한 다음에 현재 지점을 마스터로 이름을 바꾸고 원격 창고에push를 강제로 설치하면 된다
  • git checkout --orphan latest_branch
  • 모든 파일 추가git add -A
  • 변경 사항 제출git commit -m "commit message"
  • 분기 삭제git branch -D master
  • 현재 분기 이름 바꾸기git branch -m master
  • 저장소 강제 업데이트git push -f origin master
  • 이것으로 끝냅니다.

    3 기록 삭제


    여기는 수정입니다.git 폴더의 내용
    #!/bin/bash
    
    COMM=`git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -10 >1.txt`
    
    for value in `cat 1.txt |awk '{print $1}'`
    do
    	git rev-list --objects --all | grep "${value}" >2.txt
    	a=`cat 2.txt |awk '{print $2}'`
    	git log --pretty=oneline --branches -- ${a}
    	git filter-branch --index-filter "git rm --cached --ignore-unmatch ${a}" -- --all
    	git push --force
    	rm -Rf .git/refs/original
    	rm -Rf .git/logs/
    	git gc
    	git prune
    done
    
    

    이 코드는 테스트가 없어서 성공할 수 있을지 모르겠어요. 추천 방법 1 또는 2

    좋은 웹페이지 즐겨찾기