이 문서에서는 Git 리포지토리에서 불필요한 파일을 식별하고 제거하여 저장 공간을 최적화하고 성능을 향상시키는 전략과 도구를 제공합니다. 논의된 주요 문제는 매달려 있는 개체, 대용량 파일 및 untr
git 저장소에서 불필요한 파일을 식별하고 제거하려면 다음 단계를 따르세요.
git gc --prune
to remove dangling objects: This command removes objects that are unreachable from any commit. Dangling objects can accumulate over time when you delete branches or commits.git filter-branch
to rewrite history: This command allows you to remove or modify specific files from the entire history of a branch. However, it's important to proceed cautiously as it rewrites the history of the repository.git ls-files -s
to identify large files and consider moving them to a separate location.git clean -n
to list untracked files and git clean -f
to remove them.After a merge or branch deletion, follow these cleanup best practices:
git branch -d <branch-name>
to delete the branch.git push <remote-name> --delete <branch-name>
.git reflog expire --expire=<duration>
to prune old entries in the reflog.git reset --hard <commit-hash>
이 명령은 어떤 커밋에서도 연결할 수 없는 개체를 제거합니다. 브랜치 또는 커밋을 삭제하면 시간이 지남에 따라 매달린 개체가 누적될 수 있습니다.git filter-branch
를 사용하여 기록을 다시 작성하세요.git ls-files -s
를 사용하여 대용량 파일을 식별하고 별도의 위치로 이동하는 것을 고려하세요.
git clean -n
을 사용하고 해당 파일을 제거하려면 git clean -f
를 사용하세요.
git Branch -d <branch-name>
을 사용하여 브랜치를 삭제하세요.git push <remote-name>을 사용하여 --delete <branch-name>
.🎜🎜🎜reflog 정리:🎜 reflog는 저장소에 수행된 모든 작업을 기록합니다. git reflogexpire --expire=<duration>
를 사용하여 reflog의 이전 항목을 정리하세요.🎜🎜🎜Reset HEAD:🎜 저장소를 특정 커밋으로 되돌리려면 를 사용하세요. git 재설정 --hard <commit-hash>
. 커밋되지 않은 모든 변경 사항이 제거되고 지정된 커밋이 새 HEAD로 만들어집니다.🎜🎜🎜자동 정리 도구🎜🎜git 저장소에서 정리 프로세스를 자동화하는 데 사용할 수 있는 여러 도구와 스크립트가 있습니다:🎜🎜🎜🎜git-cleanup:🎜 명령 -추적되지 않은 파일, 빈 디렉터리 및 참조 로그 제거와 같은 다양한 정리 명령을 제공하는 라인 도구입니다.🎜🎜🎜git-prune:🎜 매달린 커밋, 태그 및 분기를 정리하는 데 도움이 되는 쉘 스크립트.🎜🎜🎜git-sweep: 🎜 Git 저장소에서 참조되지 않은 대용량 파일을 식별하고 제거하는 Ruby 스크립트입니다.🎜🎜🎜git-annex:🎜 대용량 파일을 추적하면서 기본 저장소 밖으로 이동할 수 있는 도구입니다.🎜🎜위 내용은 Git 창고 정리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!