Uzak dala aktarılamıyor, dala çözümlenemiyor


110

Depolarımı Bitbucket veya Github'dan taşıdım. Bunun önemli olduğunu sanmıyorum ama farklı olan tek şey bu ... Kısa bir süre için iki uzaktan kumanda kurdum:

origin: bitbucket
github: github

Sonra ikisini de kaldırdım ve orijini github'a işaret ettim:

git remote remove origin
git remote remove github
git remote add origin https://github....

Geliştirme şubesinin test itmesi:

git push origin develop

Her şey güncel, tamam, güzel.

Her zamanki gibi bazı işler için yeni bir şube oluşturun:

git checkout -b Feature/Name

Bir veya iki dosyayı güncelleyin. Uzaktan kumandaya itmeyi dene:

git push origin Feature/Name

Bu şu hatayla sonuçlanır:

önemli: Özellik / Ad şubeye çözümlenemiyor

Bu sorunu çevrimiçi olarak arayın, HEAD'in doğru olduğundan emin olmak hakkında bazı şeyler bulun, diğerlerini ise şube adımın durumunu doğru olarak aldığımdan emin olun (ancak, bu noktada şube henüz uzaktan kumandada mevcut değil). Çözmek için uygun değil.

Bu komutu çalıştırdım:

git push --all -u

Bu Feature/Name, şubemi github'a getirdi, ancak yine de öncekiyle aynı davranışı görüyorum:

git push origin develop
git push origin Feature/Name

Birincisi çalışır, ikincisi aynı hatayı atar.

Bu hatayı neden aldığımı anlayamıyorum. Herhangi bir fikir?


1
Yaparken hangi şubedeydin Feature/Name? Var olduğundan emin misin Feature/Nameve bu kontrol edilen şube mi? İle kontrol edin git branch.
Schwern

@Schwern - Yalnızca üç dal vardı (yerel olarak ve uzaktan): geliştirme, test etme ve yönetme. Bir şube temizlendikten ve geliştirilmek üzere yeniden birleştirildikten sonra, onları yerel olarak (ve mümkünse uzaktan) silerim. Eminim sadece üç tane var - projeyi bir süredir açmadım ve ilk yaptığım şey kontrol etmek ve gevşek şubelerim olmadığından emin olmaktı.
jleach

Bu, yerel olarak var git brancholduğunu doğrulamak için koştuğunuz anlamına mı geliyor Feature/Name? Bir GUI veya IDE'ye güvenmeyin. Ayrıca, davayı doğru anladınız mı?
Schwern

Nasıl olur git push origin Feature/Name:Feature/Name?
ElpieKay

Şimdi sinirliyim ... neden işe yaramadığından emin değilim ama kullandıktan sonra git push --all -uyeni şubem github'da var ama yine de yerelden zorlayamadım, değil mi? İşte bununla olan şey ... asıl şube adı SQLMigration/ReportFixesve github'da ne olduğu SqlMigration/ReportFixes. Öyleyse, şimdi yapabilirim git push origin SqlMigration/ReportFixes- neden github benim için kasayı değiştiriyor? Agh.
jleach

Yanıtlar:


380

Ben de bu sorunu yaşıyordum ve beni deli ediyordu. Gibi bir şey vardı feature/nameama git branch -abana gösterdi FEATURE/name. Şubeyi yeniden adlandırmak, silmek ve yeniden oluşturmak, hiçbir şey işe yaramadı. Sonunda onu düzelten şey:

Gir .git/refs/heads

Bir FEATUREklasör göreceksiniz . Olarak yeniden adlandırın feature.


4
Bu benim için doğru cevaptı. Windows'ta gitbash kullanıyordu ve özellik / bir-özellik ve Özellik / bir-özellik oluşturmuştu.
Dylan McCurry

Bu doğru cevap olarak işaretlenmelidir. Bana yardım etti. Teşekkürler!
GuiDoody

21
Bu cevap için sana bira borçluyum! : D
Vojta

1
Vay canına, güzel yakaladın. Bana çok zaman kazandırdı. Teşekkürler !
Piyush

2
@ Pegues - bitti. Sorunu ben yaşadıktan çok sonraya kadar bu cevabın var olduğunu sanmıyorum, ama popüler olan bu gibi görünüyor, işte böyle.
jleach

30

Kendi testlerime ve OP'nin yorumlarına dayanarak, bir noktada şube adının kasasını aldıklarını düşünüyorum.

İlk olarak, OP'nin OS X veya Windows gibi büyük / küçük harfe duyarlı olmayan bir işletim sisteminde olduğuna inanıyorum. Sonra böyle bir şey yaptılar ...

$ git checkout -b SQLMigration/ReportFixes
Switched to a new branch 'SQLMigration/ReportFixes'

$ git push origin SqlMigration/ReportFixes
fatal: SqlMigration/ReportFixes cannot be resolved to branch.

Kasa farkına dikkat edin. Ayrıca, hatanın yalnızca adı yazmanızdan çok farklı olduğunu unutmayın.

$ git push origin SQLMigration/ReportFixme
error: src refspec SQLMigration/ReportFixme does not match any.
error: failed to push some refs to 'git@github.com:schwern/testing123.git'

Github şube adlarını saklamak için dosya sistemini kullandığından, açmaya çalışır .git/refs/heads/SqlMigration/ReportFixes. Dosya sistemi büyük / küçük harfe duyarlı olmadığı için başarıyla açılır, .git/refs/heads/SqlMigration/ReportFixesancak şube adlarını büyük / küçük harfe duyarlı olarak karşılaştırmaya çalıştığında ve eşleşmediğinde kafası karışır.

Yerel şubenin olduğu SQLMigration/ReportFixesve uzak şubenin olduğu bir duruma nasıl geldiklerinden SqlMigration/ReportFixesemin değilim. Github'ın uzak şube adıyla uğraştığına inanmıyorum. En basit açıklama, push erişimine sahip başka birinin uzak şube adını değiştirmesidir. Aksi takdirde, bir noktada, yazım hatasıyla uzaktan kumandayı yaratmayı başaran bir şey yaptılar. Kabuk geçmişlerini kontrol ederlerse, belki de history | grep -i sqlmigration/reportfixeskasayı yanlış yazdıkları bir komut bulabilirler.


OS X'te şube adındaki karakterlerin durumunu değiştirdiğimde bu sorunla karşılaştım. Bunları geri değiştirmek sorunu çözdü.
Steven C. Howell

Bu aynı zamanda önceki bir şubeniz olduğunda, örneğin AM-xxx / bir_branch ve sonra başka bir tane AM-XXX / başka bir şube oluşturduğunuzda da olabilir, git farklı durumlara yerel olarak izin verecek ve ikisini uzaktan eşleştiremeyecektir.
timpwbaker

Evet mümkündür kontrol yanlış karışık durumda ancak check Hemen Dağınık ...
javadba

12

Git, geçerli dalı farklı bir kasa ile kontrol etmenize izin verecek ve uzaktan kumanda üzerinde bir ref bulamayacaktır.

Sadece zor yolu öğrendim.


1
bu benim sorunumdu. Hızlı bir şekilde yapmanızı > git branchve şubenizin yanında * olduğunu doğrulamanızı öneririm .
Andy Tehlike Gagne

Bu bana da oldu. @AndyDangerGagne, bunu önermenize sevindim - bulunduğum şubenin yanında * yoktu, bu yüzden tekrar kontrol ettim, bu sefer küçük harfle.
Cognitiaclaeves

9

Bana da benzer bir şey oldu. "Feat / name" gibi bir dal oluşturdum. Bunu kullanarak itmeye çalıştım:

git push --set-upstream kaynak Feat / ad

Seninle aynı ölümcül hatayı aldım:

fatal: Feat / name şubeye çözümlenemiyor

Çözmek için çok az dosyam olduğu için yeni bir şube oluşturdum. Sonra yanlış olanı silmek için şubelerimi listeledim ve başlıksız görüntülendi:

  • feat / isim

Daha önce kapak kullanmıştım ama ilk karakterde hiç kullanmamıştım. Görünüşe göre git bundan hoşlanmıyor ...


Aynı vakaya
sahiptim

5

Büyük / küçük harfe duyarlıdır, sadece oluşturulan dallanma ve dallanma için her ikisinin de aynı büyük harf olduğundan emin olun.

Misal:

git checkout -b "TASK-135-hello-world"

YANLIŞ yapmanın yolu:

git push origin task-135-hello-world     #FATAL: task-135-hello-world cannot be resolved to branch

DOĞRU yapmanın yolu:

git push origin TASK-135-hello-world

2

Belki git getirmeyi çalıştırmayı unuttunuz? uzak depodan veri almak gerekiyor! Koşmayı denegit fetch remote/branch


2

Benim durumum için, daha önce büyük harflerle dal klasörüne (veya her ne denirse) sahiptim, sonra fark kasalı (küçük harfli) yeni bir tane oluşturuyorum ama git aslında büyük harfle dalı yaratıyor.

Eskisi gibi bir dal oluşturdum feature-ABC/branch1ve ittim. Sonra bir dal oluşturuyorum feature-abc/branch2(küçük harfli ABC'ye dikkat edin) ve kullanarak onu uzaklara itmeye çalışıyorum git push --set-upstream origin feature-abc/branch2ve 'dallanmaya çözülemiyor' hatasını alıyorum. Bu yüzden bunun benim için değil de git branchyaratıldığını görüyorum ve görüyorum . İle tekrar kontrol ediyorum ve çözmek için büyük harf ( ) kullanarak itiyorum .feature-ABC/branch2feature-abc/branch1git checkout feature-ABC/feature2feature-ABC/feature2


2

Yanlış kasa ile şubeye gitmekten kaynaklanan aynı sorunla karşılaştım. git feature/Nameyerine yanlış büyük / küçük harfli dallara geçmeme izin verin feature/name. Yukarıda listelenenden daha kolay bir çözüm buldum sadece:

  • değişikliklerinizi 'özellik / Ad'a uygulayın
  • git checkout master (or develop)
  • git checkout feature/name <doğru kasa ile
  • git push

2

Bunu Windows 10'da GitBash yerine cmd kullanarak çözdüm .

Bunun karakter durumu ve git ve komut satırlarının bunları nasıl işlediği ile ilgisi var.


1

Benzer dal oluşturmuş olabilirsiniz, ancak büyük / küçük harfe duyarlı olarak farklı bir şekilde çalıştırmanız gerekir:

git branch -D <name-of-different-case-branch>

ve sonra tekrar itmeyi deneyin.


1

@Ty Le'nin biraz değiştirilmiş yanıtı:

dosyalarda benim için değişiklik gerekmedi - 'Feature / ...' adında bir dalım vardı ve yukarı akışa iterken başlığı 'feature / ...' olarak değiştirdim (ilk harfin durumu alt olana değiştirildi ).


0

Ben de bu sorunu yeni yaşadım ve normal dallarım ile başlıyor pb-3.1-12345/namebranchama yanlışlıkla ilk 2 harfi büyük yazdım PB-3.1/12345/namebranch. Şubeyi küçük harfleri kullanacak şekilde yeniden adlandırdıktan sonra dalı oluşturabilirim.


0

benim için şubeyi şöyle adlandırıyordum

Rel4.6 / bug / Bazı kısa açıklama

tek yapmam gereken şey kullanırken

git push origin R elx.x / bug / Bazı-kısa açıklama

yazmak

git push origin r elx.x / bug / Bazı-kısa açıklama

rel içinde küçük harf r kullanarak dallar yaratırdım.

peki, bu soruna ne sebep oldu?

.git/refs/headsbulduğum içeriği listelediğimde

drwxr-xr-x  4 eslam_khoga  staff   128B Sep 22 20:22 relx.x

ama hayır Relx.x!

ve içinde bugve dalımın bugadının içinde.

Bu yüzden git, aynı isimde ancak farklı büyük harflerle bir dir oluşturmaya çalışın

ancak sistem büyük / küçük harfe duyarlı değildir.

Bu soruna neden olan buydu!


0

Farklı kasalarla aynı sorunu yaşadım.

Geliştirme (veya ana) için bir ödeme yaptıktan sonra adı (yanlış ad) test gibi başka bir şeyle değiştirdi.

  • git checkout geliştirme
  • git şube -m yanlış isim testi

sonra adı doğru isme geri değiştirin

  • git şube -m test sağ adı

sonra doğru addaki şubeye ödeme yap

  • git checkout sağ adı

sonra uzak şubeye itmek için çalıştı

  • git itme kaynağı doğru adı

0

Benim için sorun, git ve macOS dosya sistemimin iki farklı durum hassasiyetine ayarlanmış olmasıydı. Mac'im APFS olarak biçimlendirildi / Büyük / Küçük Harfe Duyarlı: HAYIR, ancak git config --global core.ignorecase false olarak Xcode görüntü varlık adlandırma ile ilgili garip bir sorunu aşmaya çalışırken bir noktada git ayarlarımı ters çevirmiştim . Ters çevirerek ayarları hizalayarak ve dalı yeniden oluşturarak ve iterek beni tekrar yoluna koydu.

git config --global core.ignorecase true

Kredi: https://www.hanselman.com/blog/GitIsCasesensitiveAndYourFilesystemMayNotBeWeirdFolderMergingOnWindows.aspx


0

Aynı sorunu yaşadım ama çözüldü. Şube adının büyük / küçük harfe duyarlı olduğunu fark ettim. GitHub'daki ana dal 'ana', gitbash komutumda ise 'Ana'. Yerel depoda Master olarak yeniden adlandırdım ve işe yaradı! 😀😀


0

Aynı sorunla karşılaştım ve şubeyi kontrol ederken kasayı karıştırdığımı fark ettim. Bunun branchNameyerine kontrol ettim BranchNameve uzaktan kumandaya basmaya çalıştığımda aynı hatayı aldım.

Çözüm:

git push --set-upstream origin BranchName

Yukarı akışı doğru ada ayarlayarak, doğru şube github'da güncellendi ve ardından doğru şube adını kontrol edebildim.

git checkout BranchName 

Ve son hareketinizle güncel olmalıdır.


-1

Yerel şubede iseniz, "Özellik / Ad" şubesini "özellik / Ad" olarak yeniden adlandırabilirsiniz

git -m feature/Name

git pushBaşka bir şubede ödeme yapmak (ex development) yapmakta sorun yaşıyorsanız ve yeniden adlandırılmış şubeye geri dönüyorsanız

git checkout feature/Name

ve tekrar dene git push

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.