Nasıl git benim repo dan başvurulmayan lekeler kaldırmak için
İki dal - ana & serbest olduğu bir GitHub repo var.
Yayın şube çok büyük bir repo büyüklüğü katkıda bulunduklarını, bu alan dağıtım ikili dosyaları (>250 MB), ben şeyleri temizlemek için karar verdi.
İlk uzaktan kumandalı açma kolu git push origin :release
) sildim
Daha sonra yerel yayın şube sildim. İlk git branch -d release
, ama git dedi çalıştım< "hata: şube' geçerli KAFANI. atası değildir" 'release ^emdoğru olan, o zaman git branch -D release
silinecek zorlamak için yaptım.
Ama benim depo boyutu, yerel ve GitHub üzerinde de, yine de büyük oldu. O zaman hiç şans* *5, her zamanki gibi git komutların listesi üzerine koştum.
SO 1029969 Charles Bailey talimatları takip ederek büyük lekeler için SHA1s bir liste alabildim. Ben o SO 460331 script lekeler bulmak için kullanılan...ve beş büyük küçük lekeler senaryonun iyi olduğunu biliyorum bulundu, ama yok, yok.
Bu bloglar serbest şubesinden ikili olduğunu düşünüyorum, ve onlar bir şekilde bu şubenin sil sonra solda da var. Onlardan kurtulmak için doğru yolu nedir?
CEVAP
... ve daha fazla uzatmadan, sizi bu kullanışlı script sunuyorum,git-gc-tümkaldırmak için garantitümsenin gıt ekstra config değişkenleri ortaya çıkartabilirler kadar çöp:
git -c gc.reflogExpire=0 -c gc.reflogExpireUnreachable=0 -c gc.rerereresolved=0 \
-c gc.rerereunresolved=0 -c gc.pruneExpire=now gc "$@"
--Saldırgan seçenek yararlı olabilir.
Ayrıca bu ilk, ah canım, git karışık! gibi bir şey yoktur.
git remote rm origin
rm -rf .git/refs/original/ .git/refs/remotes/ .git/*_HEAD .git/logs/
git for-each-ref --format="%(refname)" refs/original/ | xargs -n1 --no-run-if-empty git update-ref -d
Bir senaryo bu, buraya koyuyorum:
Nasıl GitHub benim depo bir dizin kald...
nasıl git repo uzak köken kaldırmak iç...
Nasıl benim MySQL tablo kısıtlamaları ...
Nasıl heroku uygulama için benim repo ...
Nasıl bir JavaScript nesnesinin bir öz...