uyarı: refad 'HEAD' belirsiz


139

Git için yeniyim ve aşağıdaki komutu yürütürsem çok fazla bir şubem var:

warning: refname 'HEAD' is ambiguous.

Aşağıdaki çıktıyı alıyorum:

warning: refname 'HEAD' is ambiguous.
From github.com:dagda1/hornget
 * branch            master     -> FETCH_HEAD
warning: refname 'HEAD' is ambiguous.
warning: refname 'HEAD' is ambiguous.

Eğer yürütürsem git branch -a

Aşağıdakileri alıyorum:

HEAD
* master
remotes/emmekappa/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

Kafam karıştı remotes/origin/HEAD -> origin/master.

Bu nedir ve belirsiz daldan nasıl kurtulabilirim.

Belirsiz dalı eklediğimi düşündüğüm bir birleştirme yaparak bu aşamaya geldim.


11
Yürütmeye çalıştığınız ilk komut nedir? Kesinlikle öyle değilwarning: refname 'HEAD' is ambiguous.
Ben James

1
remotes/origin/HEAD -> origin/mastersorun değil: sadece uzaktan kumandada hangi dalın varsayılan olduğunu gösterir origin. Adlı şube HEAD.
Jakub Narębski

3
Sanırım yürütmeye çalıştığınız komutu size göstermek için soruyu düzenlemeniz gerekiyor :)
Kris

Bunu yeniden oluşturmak için "git fetch origin HEAD: HEAD" komutunu çalıştırın. Görünüşe göre, mevcut dalı tam anlamıyla HEAD adlı yeni bir dalda birleştirmeye çalışıyor.
Brain2000

Yanıtlar:


224

Sorun şu ki HEAD, kesinlikle tehlikeli olan denilen bir dalınız var , çünkü mevcut dal ne olursa olsun bu dalın sembolik adı .

Yeniden adlandırın:

git branch -m HEAD newbranch

ardından inceleyebilir ve ne yapacağınıza karar verebilirsiniz (silebilir veya açıklayıcı bir şube adı altında kaydedebilirsiniz)

( origin/HEADUzak dal sorun değil)


Bu, şube ile aynı ada sahip bir dosya veya dizine sahipseniz de olabilir.
Matt Connolly

2
İken origin/HEADkudreti sorun olmayacak, yanlışlıkla denilen bir şube oluşturursanız origin/somebranchbir sorun IS (ve aynı "belirsiz" hata mesajı neden olacaktır). "Birinden" çekmeye çalıştığınızda, uzaktan kumanda yerine yerel (kazayla) dalınızdan çekileceksiniz. Bu durumda, flickerfly'ın yapma önerisinin git branch -d origin/somebranchharika olduğunu gördüm .
machineghost

Bunu düzelttim, teşekkürler. Dikkate değer, "HEAD" dalı benim tarafımdan otomatik olarak oluşturulur. Tek bir birleştirme taahhüdü içeriyordu ve reflog kullanarak temiz bir duruma dönemedim. Bu yüzden şubeyi yeniden adlandırdım, sildim, "1 önde" yerel ustamın kaynağına / ustasına
dayandım

1
Aynı şey yalnızca dallar için değil, etiketler için de olabilir.
sebix

1
hah! Ben bir kafa ve head(küçük harf) adlı bir şube oluşturmuş olan robotlar ile çalışmak .
orion elenzil

36

Ayrıca, bu istemezseniz, dalı silecektir.

git branch -d HEAD

-DSilme işlemini zorlamak için büyük harf kullanın :

git branch -D HEAD

3
ama yine de belirsiz kalacak, onu temizlemenin bir yolu var mı?
RzR

27

HEADKullanarak adlı bir etiket oluşturduysanız ...

git tag HEAD

... şu etiketi kullanarak silebilirsiniz:

git tag -d HEAD

Bu örneğe bakın: kerneltrap.org/git-tag HEAD


Bu, HEAD adıyla yanlışlıkla etiket eklediğinizde olur, bu nedenle burada önerildiği gibi silmeniz gerekir
user1610308

1

Bu, "head" adında bir şubeniz olduğu anlamına gelir. Aynı sorunu yaşadım, aşağıdaki komutu kullanarak çözdüm.

git branch -d head

1

Git deponuzda bulunan referansları kontrol edin. Deponuzda iki HEAD gözlemleyeceksiniz. Bu, HEAD refname ile dalınızı belirsiz hale getirir.

git show-ref

Çözüm:

  • Şubeyi yeniden adlandırın

    git branch -m HEAD <new_branch_name>
    

    VEYA

  • Şubeyi sil

    git branch -d HEAD
    
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.