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 prune
benim 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 gc
benim için çalıştığından daha
Karşılaştığım sorun ( yukarıdaki bu yorumda belirtilen @Stavarengo'nun aynı sorunu ), varsayılan uzak şubenin ( develop
benim durumumda) silinmiş olması, ancak yine de .git/refs/remotes/origin/HEAD
.
.git/refs/remotes/origin/HEAD
Editö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/HEAD
ve ş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 gc
bundan sonra iyi çalıştı.
git remote set-head $REMOTE --auto
benim 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 --auto
refs / remotes / origin / HEAD git prune
error: Multiple remote HEAD branches. Please choose one explicitly
ve hatanın git remote set-head origin mybranch
ortadan 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.
master
denilen başka bir şubeye değiştirdimdevelop
. Eski varsayılan dalı olarakdevelop
değiştirmedenmaster
ve eski varsayılan dalı sildimdevelop
, ancak çalışma dizinimde dosya.git/refs/remotes/origin/HEAD
halarefs/remotes/origin/develop
mevcut olmayan bir yere işaret ediyordu . Bu durumda dosyanın kaldırılması işe yaradı.