git branch -d uyarı veriyor


92

Yerel bir şubeyi sildikten sonra uyarı mesajını daha iyi anlamak istiyorum

uyarı: 'old_branch'ile birleştirilen 'refs/remotes/origin/old_branch'ancak henüz birleştirilmemiş dalı silme HEAD.


29
Eğer eski dalınızı sıkıştırırsanız, yerel olarak silerken her zaman bu uyarıyı alırsınız. Dizininizi sıkıştırırken, dizininiz sıfırlanır, bu nedenle old_branch HEAd ile eşleşmez
Antoine Wils

Diğer cevaplar doğru olsa da, Antoine'ın yorumu en azından benim durumumda sebepti.
Squrppi

Yanıtlar:


66

Bu, yalnızca dalda değişiklik yaptığınız konusunda sizi uyarır origin, ancak bunlar ile birleştirilmezler master, bu nedenle yalnızca yerel olarak silersiniz.

Artık bu şubenin yerel bir kopyasına sahip olmadığınızı, ancak origin

Uzak dalı da silmek isterseniz, şunu kullanın: git push --delete origin old_branch


9
Evet, masterbununla ilgisi yok. Daha ziyade mevcut şubeyi kastediyorsunuz. ;)
Fernando Espinosa

1
git branch -d branch_nameSadece şubeyi yerel olarak silmesi gereken bir yapsam bile bu uyarıyı alıyorum . Bu durumda uyarı neden gerekli?
Akshay Damle

2
Ancak origin / old_branch, origin / master ile birleştirilir. Daha sonra ana dalda git pull origin yaptım. Hala aynı hata. Bu GH'deki hata değil mi?
vikramvi

36

Şu anda masterödünç verdiğinizi varsayarsak , içinde yapılan değişikliklerin old_branchmevcut olmadığı anlamına gelir master. Ancak, bunlar şunlardır mevcut old_branchüzerinde origin.


4
Evet. Bu doğru cevap! "ancak henüz birleştirilmemiştir HEAD", HEADburada yerel ana şubenin HEAD'i referans alınmaktadır.
Devy

3
Ancak origin / old_branch, origin / master ile birleştirilir. Daha sonra ana dalda git pull origin yaptım. Hala aynı hata. Bu GH'deki hata değil mi?
vikramvi

1
@vikramvi masterYerel olarak ödünç aldığınızı varsayarsak, herhangi bir işlemin SHA'sı değiştiyse bu yine de gerçekleşebilir; yani origin/old_branchüzerine yeniden dayandınız origin/master. Hızlı ileri sarma olsa bile, bu, her yeni kayıt için yeni bir SHA oluşturacak ve git'in origin/old_branchyerel old_branchşubenizdeki değişiklikleri aldıktan sonra yerelinizdeki orijinal SHA'ları birleştirilmemiş olarak görmesine neden olacaktır master. Bunun neden oluştuğuna dair bu yanıtı ve bu yanıtı görebilirsiniz .

8

Bu yerel şube demektir old_branchuzak şube ile güncel olduğundan old_branchuzak üzerinde originancak şubeye birleştirilmez masterrepo ana dal olarak kabul edilir.

Git'ten sadece bir önlem. Size bir ipucu veriyor: belki konu dalındaki işinizi yaptınız ve ana şubeyle birleştirmeyi unuttunuz?


Güncelleme

Git, değişikliklerinizi kaybetmeniz konusunda sizi uyarır. Örneğin istemiyorsun, mutfakta annene yoksa old_brancho zaman izin vermez usta Git üzerinde bile silme usta birleştirilmemiş olan dal (iyi o tanır, ancak anahtarla için -Dolan force-deleteseçenek).


7
Mutlaka değil master, ama şu anki HEAD.
Dondurulmuş Alev

Yani -D, silinmekte olan şubeyi (gerçekten taahhüt eder) herhangi bir uzak şubeyle paylaşmadığınız zamandır. Uyarı, şubeyi uzaktan kumandayla paylaştığınızı (taahhüt ettiğinizi), ancak HEAD ile birleştirilmediğini size bildirmek içindir. HEAD HEAD, remote / refs / HEAD aynı değil. Uzak HEAD ve yerel HEAD arasındaki farklar konusunda yanılıyorsam lütfen beni düzeltin.
Eric

7

Diğer cevaplara eklemek için, bu aynı zamanda değişikliğin ana olarak birleştirilebileceği anlamına da gelebilir, sadece yerel ana kopyanız bunu henüz yansıtmıyor. Her iki durumda da bu, size ana kopyanızın yerel kopyasının orijine ittiğiniz değişikliklere sahip olmadığını bildirir. Birleştirildi / Birleştirilmedi ... belki, belki değil

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.