> 개발 도구 > 자식 > 본문

Git 창고 정리

DDD
풀어 주다: 2024-08-14 16:07:20
원래의
528명이 탐색했습니다.

이 문서에서는 Git 리포지토리에서 불필요한 파일을 식별하고 제거하여 저장 공간을 최적화하고 성능을 향상시키는 전략과 도구를 제공합니다. 논의된 주요 문제는 매달려 있는 개체, 대용량 파일 및 untr

Git 창고 정리

불필요한 파일 식별 및 제거

git 저장소에서 불필요한 파일을 식별하고 제거하려면 다음 단계를 따르세요.

  • 실행 git gc --prune: 매달려 있는 개체를 제거합니다.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.
  • Use 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.
  • Check for large files: Large files can take up a significant amount of repository space. Use git ls-files -s to identify large files and consider moving them to a separate location.
  • Review untracked files: Untracked files are not part of any commit and can be safely removed. Use git clean -n to list untracked files and git clean -f to remove them.

Best Practices for Cleanup After Merge or Branch Deletion

After a merge or branch deletion, follow these cleanup best practices:

  • Remove merged branches: After merging a branch, delete the merged branch to avoid clutter. Use git branch -d <branch-name> to delete the branch.
  • Delete remote branches: If you have deleted a branch locally but it still exists on the remote repository, delete it remotely using git push <remote-name> --delete <branch-name>.
  • Prune the reflog: The reflog records all actions made to the repository. Use git reflog expire --expire=<duration> to prune old entries in the reflog.
  • Reset HEAD: If you want to revert the repository to a specific commit, use 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!