Git은 추가되었지만 커밋되지 않은 Blob을 유지하는 것 같습니다.
#> mkdir foo
#> cd foo
#> echo a > data.txt
#> git add data.txt
#> find .git/objects
.git/objects/58/7be6b4c3f93f93c489c0111bba5596147a26cb
이제 내용을 변경하십시오.
#> echo b > data.txt
#> git add data.txt
#> find .git/objects
.git/objects/61/780798228d17af2d34fce4cfbdf35556832472
.git/objects/58/7be6b4c3f93f93c489c0111bba5596147a26cb
우리는 58/7be6b4c3f93f93c489c0111bba5596147a26cb
더 이상 필요 하지 않습니까?
#> git commit -m 'first'
#> find ./git/objects
.git/objects/c0/eef182819e5c530c407ca17a24e39cb6682ed3
.git/objects/61/780798228d17af2d34fce4cfbdf35556832472
.git/objects/58/7be6b4c3f93f93c489c0111bba5596147a26cb
.git/objects/70/a6a81a455bea58166d60d21060b074d3271b6a
고아 58/7be6b4c3f93f93c489c0111bba5596147a26cb
는 아직 거기에 있습니다.
git add
커밋되기 전에 변경된 많은 파일을 작업 했습니다. 인덱스에서 더 이상 참조하지 않는 Blob을 제거 할 수 있습니까?
나는 당신이 할 수없는 이유를 보지 못했으며 git은 동의하는 것 같습니다. 실행 git fsck --unreachable
하면 매달려있는 노드로
git prune --dry-run
표시되고 제거 될 것임을 보여줍니다.
나는 그것을 손으로 실행하지 않을 것입니다 (일반적인 repo / work 시나리오에서)- git gc
명령은 정확히 다음과 같은 목적을 가지고 있습니다. ( https://git-scm.com/docs/git-gc에서 )
파일 개정을 압축 (디스크 공간을 줄이고 성능을 높이기 위해)하고 git add의 이전 호출에서 생성되었을 수있는 도달 할 수없는 객체를 제거하는 등 현재 저장소 내에서 여러 가지 관리 작업을 실행합니다.
사용자는 각 저장소 내에서이 작업을 정기적으로 실행하여 좋은 디스크 공간 활용도와 우수한 운영 성능을 유지하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다