Yanıtlar:
Bunun sonuçlarını anlamıyorum, ancak bu ileti dizisinde önerildiği gibi, bununla karşılaştığımda anladım
$ mv .git/refs/remotes/origin/HEAD /tmp
(her ihtimale karşı etrafta tutmak) ve sonra
$ git gc
şikayet etmeden çalıştı; Herhangi bir sorunla karşılaşmadım.
git prunebenim için çalıştı, Git'te biriken ancak yararlı hiçbir şey tarafından referans alınmayan verileri silmenin bir yolu.
$ mv .git/refs/remotes/origin/HEAD /tmp $ git gc git prune
git gcbenim için çalıştığından daha
Karşılaştığım sorun ( yukarıdaki bu yorumda belirtilen @Stavarengo'nun aynı sorunu ), varsayılan uzak şubenin ( developbenim durumumda) silinmiş olması, ancak yine de .git/refs/remotes/origin/HEAD.
.git/refs/remotes/origin/HEADEditörümde açılış şunu gösterdi:
ref: refs/remotes/origin/develop
Ben dikkatle benim yeni varsayılan şubesinde noktaya düzenlenebilir ve tüm iyi oldu:
ref: refs/remotes/origin/master
Beni bilgilendiren ipucu, koşmanın git pruneşu hatayı göstermesiydi:
> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD
Trenton'un cevabını gördükten sonra, kendime baktım .git/refs/remotes/origin/HEADve şimdi silinmiş olan eski bir dalı işaret ettiğini gördüm.
Ancak dosyayı kendim düzenlemek yerine Ryan'ın çözümünü denedim:
git remote set-head origin --auto
Dosyayı otomatik olarak yeni şubeye ayarladı ve git gcbundan sonra iyi çalıştı.
git remote set-head $REMOTE --autobenim durumumda, $ REMOTE uzak diğer addır, varsayılan "kaynak" değil, çünkü birden fazla uzaktan kumanda kurulumum var.
Bunun işe yarayacağı için çözümün aşağıdaki olduğunu düşündüm, ancak aslında sorunu çözmediği ortaya çıktı.
git remote set-head origin --auto
git prune(ilk komut çıktısında önerildiği gibi), bu yüzden bana neyin yardımcı olduğunu tam olarak söyleyemiyorum - birinci, ikinci veya her ikisi.
git remote set-head origin --autorefs / remotes / origin / HEAD git prune
error: Multiple remote HEAD branches. Please choose one explicitlyve hatanın git remote set-head origin mybranchortadan kalkması için ('şubem' şubesi kontrol edilirken) kullanmak zorunda kaldım .
Görünüşe göre sembolik referanslarınız bozuk olabilir ... Bunu varsayılan dalınızla değiştirmeyi deneyin: Örneğin, benim varsayılan dalım ana
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
$ git fetch --prune
$ git gc
Bu onu düzeltmeli.
Bunun benim için nedeni Windows'ta sıkıştırılmış bir klasörde çalışmaktı. Klasör sıkıştırılmamış haldeyken, var olmayan dalları budayamamak gibi diğer garip sorunları basamaklayarak paket dosyalarını bozdu.
Tek düzeltme, çalışma dizinini silmek ve depo uzak (lar) ını tekrar klonlamaktı. Neyse ki, hiçbir şeyin kaybolmadığından emin olmak için güncellemeleri almaya ve çekmeye devam edebilirim. Şimdi her şey yolunda.
masterdenilen başka bir şubeye değiştirdimdevelop. Eski varsayılan dalı olarakdevelopdeğiştirmedenmasterve eski varsayılan dalı sildimdevelop, ancak çalışma dizinimde dosya.git/refs/remotes/origin/HEADhalarefs/remotes/origin/developmevcut olmayan bir yere işaret ediyordu . Bu durumda dosyanın kaldırılması işe yaradı.