"최적의 성능을 위해 저장소 자동 패킹"은 무엇을 의미합니까?
저는 제 Git repo에 문제가 있어요.지난 며칠 동안 서버를 푸시할 때마다 "최적의 성능을 위해 리포지토리 자동 패킹"이라는 메시지가 표시되는데, 이 메시지는 사라지지 않고 셸을 반환하는 것 같습니다.
저는 또한 새로운 지점에 체크아웃한 후 이전 지점에서 리베이스 작업을 시도했습니다.git gc
사용하지 않는 기록 개체를 제거한 다음 푸시를 수행했지만 여전히 이 메시지가 나타납니다.제 레포에 무슨 일이 일어나고 있는지 알려주세요.
짧은 버전: 그것은 그것이 말하는 것을 의미하며, 만약 당신이 그것을 끝내도록 내버려둔다면, 모든 것이 잘 될 것입니다.
푸시느슨한(팩되지 시킬 수 은 "(으)로 호출됩니다.git gc --auto
개체가 6700개), 느한기충경우(6700개)를 합니다.git repack -d -l
그들을 포장하기 위해.분리된 팩이 너무 많으면 하나로 재포장됩니다.
팩은 델타로 압축된 단일 파일로, 많은 개체를 포함합니다.이 더개체를 포장 데 개체를 한 다음합니다.git gc --auto
.
만약 당신이 Git에게 재포장을 끝내게 한다면, 당분간 이런 일은 없을 것입니다.특히 큰 이진 개체가 많은 경우에는 시간이 걸릴 수 있지만, 트리거될 경우에는 레포에 사용되는 Disk 공간을 크게 줄일 수 있다는 신호입니다.이 작업을 수행하지 않으려면 구성 매개 변수를 변경할 수 있습니다.gc.auto
6700보다 훨씬 큰 크기로 증가하면 발생 빈도는 줄어들지만 발생할 때는 더 오래 걸립니다.이를 줄이면 현재 재포장 작업을 수행해야 하지만 이후에는 더 자주 수행되고 더 빨리 완료됩니다.0으로 설정하면 자동 재포장이 비활성화됩니다.
» man git-gc
(아래)--auto
및 ) 및man git-config
(아래)gc.auto
자세한 내용은 를 참조하십시오.
때때로 자동 패킹을 완료하는 데 시간이 필요하다는 Jefroni의 말은 맞지만, OP가 설명한 것처럼 자동 패킹 메시지가 며칠 동안 지속되면 이 질문에서 설명한 것처럼 Git의 정리에 매달린 개체가 누락될 가능성이 높습니다.
매달린 개체가 자동 패킹에 대한 진행 중인 메시지를 트리거하는지 확인하려면 실행해 보십시오.git fsck
매달린 커밋의 긴 목록이 표시되면 다음을 사용하여 해당 커밋을 치료할 수 있습니다.
git gc --prune=now
저는 보통 2-3개월마다 한 번 당겨도 자동 포장 메시지가 사라지지 않을 때마다 레포에서 이것을 실행해야 합니다.
한 프로젝트에 대해 사용하지 않도록 설정하는 방법:
cd your_project_dir
git config gc.auto 0
전체적으로 비활성화하는 방법
git config --global gc.auto 0
Git는 많은 객체(=파일, 커밋 및 트리)를 하나의 팩 파일로 압축하는 Git-repack을 실행하고 있습니다.Git는 때때로 휴리스틱이 공간을 절약할 수 있다고 말할 때 이 작업을 수행합니다(팩 파일에는 압축된 개체 델타가 포함되어 있지만 개체/디렉토리의 각 파일에는 압축된 전체 파일 콘텐츠가 포함되어 있습니다).
바라건대, 그것은git gc --auto
이제 단계가 더 효율적입니다(2014년 6월 25일 2.0.1 git).
Nguyễn Thai Ngọc Duy()pclouds
의 62aad18을 참조하십시오.
gc --auto
백그라운드에서 ref를 잠그지 않음
9f673f9(
gc
--auto in background - 2014-02-08, Git 2.0.0) 실행을 위한 구성 옵션은 "gc --auto
백그라운드에서 사용하여 사용자의 대기 시간을 줄입니다.
가비지 수집의 일부는 팩-refs 및 가지치기 reflogs입니다.이 경우 일부 참조를 잠그는 작업이 필요하며 동일한 참조를 잠그려는 다른 프로세스가 중단될 수 있습니다.한다면
gc --auto
스크립트 중간에 실행되며, 백그라운드에서 gc의 고정 잠금이 스크립트에 실패할 수 있으며, 이는 9f673f9 이전에는 절대 발생할 수 없습니다.실행 속행
pack-refs
그리고 "reflog --prune
포그라운드에서 병렬 참조 업데이트를 중지합니다.나머지 백그라운드 작업(재포장, 가지치기 및 리레)은 실행 중인 깃 프로세스에 영향을 미치지 않아야 합니다.
Git 2.22(2019년 2분기)는 더욱 최적화되었습니다.
언급URL : https://stackoverflow.com/questions/8633981/what-does-auto-packing-the-repository-for-optimum-performance-mean
'programing' 카테고리의 다른 글
파이썬 3의 수율 생성기에는 next() 함수가 없습니다. (0) | 2023.05.04 |
---|---|
mongodb를 업그레이드해도 효과가 없으며 이전 버전이 계속 표시됩니다. (0) | 2023.05.04 |
공통 코드를 git 하위 모듈로 추가하는 데 문제가 발생했습니다. "인덱스에 이미 있습니다." (0) | 2023.05.04 |
Windows에서 다른 패치를 적용하려면 어떻게 해야 합니까? (0) | 2023.04.29 |
VBA(Excel)에서 DateDiff-Value(밀리초)를 가져오는 방법은 무엇입니까? (0) | 2023.04.29 |