Geçerli dal çekme için yapılandırılmamış Anahtar dalı için değer yok. Master.merge, yapılandırmada bulundu


163

Egit ekibini kullanarak> uzaktan depodan çekmeye çalıştığımda bu hatayı alıyorum>

Geçerli dal çekme için yapılandırılmamış Anahtar dalı için değer yok. Master.merge, yapılandırmada bulundu


2
Aynı sorun vardı ama anahtar remote.origin.url değeri için bunu stackoverflow.com/a/10662106/759452
Adrien Be

Yanıtlar:


155

Yerel ana dalınız uzak ana dalı izlemek üzere ayarlanmamış.

Sen yapabileceğini git pull origin mastersen çıkarmak istiyorum açık dalı git anlatmak için ya da sizin .git / config bu ekleyin:

[branch "master"]
  remote = origin
  merge = refs/heads/master

Master'a ilk kez bastığınızda, -uanahtarı ( git push -u origin master) ekleyin . Bu her şeyi otomatik olarak ayarlayacaktır.


25
Ama bunu tutulma içinde nasıl yaparsınız? Sorunun "tutulma" olarak etiketlendiğine inanıyorum. Teşekkürler! :)
jmort253

2
+1 Yine de teşekkürler. Yanıtınız yaptık biz çekme kadar ayarlanmamış dışarı :) biz Eclipse o configure, işler bir araya gelerek nasıl anladım bir kez daha döner, çünkü yardım. Artık Git'in, başınızı çalışma şeklini sarmanızla birlikte çalışmak için o kadar acı verici olmadığını görüyoruz. Temel olarak depoyu tekrar kontrol ettik ve çekecek şekilde yapılandırdık.
jmort253

16
@ jmort253, soruyu yapılandırmak için tutulmada neleri değiştirmek zorunda olduğunuzun ayrıntılarıyla güncellemiş olsaydınız harika olurdu.
gview

@gview - Üzgünüz, Egit kullanmayı bıraktım ve komut satırını kullanıyorum. Eclipse çektiğimde meslektaşlarımın benim tarafımdan değiştirilmiş olarak taahhüt ettiği dosyaları işaretledi ve değişiklikleri içermeyecekti. Bu yüzden komut satırını kullanıyorum. EGit önermiyorum; ancak Mac kullanan meslektaşlarım bunu kullanabilir. Eğer başka bir şans vermeye çalışırsam (şüpheli), cevabı burada güncelleyeceğim. Açıkçası, tüm hype'ın ne hakkında olduğunu görmüyorum. Subversion'a geri dönmeye hazırım.
jmort253

9
@ jmort253, size mesaj bıraktıktan sonra, etrafta dolaştım ve bunu ele almanın en iyi yolunun orijinal yanıtta önerilenleri tam olarak yapmak olduğunu anladım. Egit .git / config içindeki değerleri okur, bu yüzden açıklandığı gibi bir metin düzenleyicisiyle düzenlenmesi sorunu çözer.
gview

64

Anlaşıldığı üzere, Michał Szajbe'nin cevabı, sorunun çözümü. Söz konusu tutulma anahtarları, egit "çalışma dizininden" oluşturulur. Bu sorunla karşılaşırsanız, o çalışma dizinindeki .git dizinini bulun ve .git / config dosyasını bir metin düzenleyicisiyle düzenleyerek Michal'in açıkladığı bölümü ekleyin. Bu, benim deneyimime göre, bu günlerde init'i ilk kez gittiğinizde ve başlatılmamış bir uzaktan kumandaya bastığınızda, ana dalı oluşturan durumlar için oldukça standart bir işlemdir. Bu durumda komut satır git ile bile git pull için manuel düzenleme yapmamanın bir yolunu bulamadım.

Düzenleme kaydedildikten sonra, egit "Git Depoları" perspektifinizde git repo'yu sağ tıklayın ve özellikleri seçin, şimdi tuşların bu bölümünün oluşturulduğunu (veya büyük olasılıkla yapılandırma dosyasından okunduğunu) ve uzaktan kumandayı göreceksiniz. yerelden master'a master git pull ileriye doğru beklendiği gibi çalışacaktır.

resim açıklamasını buraya girin

Bu anahtarları ve değerleri kendiniz girebilirsiniz, ancak Michal'in gösterdiklerini kopyalamak ve yapıştırmak kesinlikle çok daha hızlı ve muhtemelen daha güvenlidir. Aslında bu özellik çalışır biliyorum ve mantıklı basitçe yerel git repo aracılığıyla çağırıyor çünkü mantıklı özellik editörü aracılığıyla el ile anahtarları eklemeyi deneyin vermedi.

Ayrıca ofisimde Flex ve tutulma ve egit üzerine kurulu Flexbuilder editörü kullanan bazı insanları da destekliyorum. Bu talimatlar onlar için eşit derecede geçerlidir.


7
Yapılandırma dosyasını doğrudan düzenlemedim, ancak yukarıda gösterilen Özellikler iletişim kutusunu kullanarak "branch.master.merge" anahtarını ekledim. Bu da bir köpek balığı gibi çalıştı.
Matthias Wuttke

57

Eclipse'de bu sorunu çözmek için Windows menüsünü açın ve Görünüm / Diğer / Git Depolarını Göster'i seçin .

Git Depoları sekmesinden:

  • yerel deponuzu genişletin
  • Uzaktan Kumandayı sağ tıklayın
  • Uzaktan Kumanda Oluştur ... seçeneğini tıklayın.
  • Uzak ad = başlangıç
  • IRI'nın yanındaki Değiştir düğmesine basın
  • CTRL+ SPACEURI'de
  • uzak konumu seç
  • Bitir'e basın
  • Kaydet ve Bas'a basın

Yine Git Depoları sekmesinden:

  • kökeni sağ tıklayın
  • Getirmeyi Yapılandır ... 'ı seçin
  • Ref eşlemede Düzenle (Gelişmiş) düğmesine basın ...
  • basın Tüm Dalları Ekle Spesifikasyonu
  • Güncellemeyi Zorla onay kutusunu seçin
  • Bitir'e basın

Yine Git Depoları sekmesinden:

  • yerel deponuza sağ tıklayın
  • Özellikler'i seçin
  • Yeni Giriş'e basın ...
  • aşağıdaki iki anahtarı girin:

(1)

Key = branch.master.remote
Value = origin

(2)

Key = branch.master.merge
Value = refs/heads/master

4
Bana göre, bu sorunun en iyi cevabı.
Kashif Nazar

1
Kabul edilen cevap burada ele alınan bazı adımları kaçırıyor gibi görünüyor.
FableBlaze

47

Bu benim için çalıştı:

Teslim edilemeyen teslim alınan yerel şubeme sağ tıklayın (madenin "geliştirme" olarak adlandırılır) "Şube Yapılandır ..." seçeneğini seçin "Yukarı Akım Şubesi" için "refs / heads / development" seçeneğini seçtim "Uzak:" için "Orijin" Sol "Rebase" i işaretlemedim seçildi Hit OK

Şimdi benim yapılandırma tercih penceresi gview cevabındaki gibi görünüyor.


14
"Şube Yapılandır ..." ı çok zor buldum. "Git Depoları" görünümüne gidip şubeleri genişletip yerel şubeye sağ tıklayarak bulmayı başardım
Edd

18

Bunu yapılandırırken de sorunlar yaşadım. Şimdi çalışıyor, bu yüzden yapılandırma dosyamı paylaşacağım. Bence yardımcı olacak:

[core]
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true

    [branch "master"] 
        remote = origin 
        merge = refs/heads/master 
    [remote "origin"] 
        url = https://github.com/chelder86/ArcadeTongame.git
        fetch = +refs/heads/*:refs/remotes/origin/*

Not: https://github.com/chelder86/ArcadeTongame.gitkendi HTTPS klon URL'nizle değiştirilmelidir.


Çalışan bir yapılandırma dosyası tam olarak bakmam gereken şeydi. Teşekkürler!
Martin Tuskevicius

10

Aynı sorun. Eclipse / egit içinde nasıl çözdüm :

Başlangıçta ofis bilgisayarıma uzak bir repo kopyaladım (kendi repo'm ama uzak sunucuda). Sonra yerel olarak yeni bir repo projesi dalı oluşturdum ("test") ve uzak depoya ittim. Dizüstü bilgisayarıma uzaktan repo kopyaladım, "test" şubesine geçtim, üzerinde çalıştım, vb. Değişiklikleri sunucudan "test" çekmeye çalıştığımda msg "yerel dal çekmek için yapılandırılmadı" var.

Sorun şu ki, masaüstünde "test" yalnızca yereldir, uzak URL bilgisi içermez, bu nedenle değişiklikleri alamaz.

Eclipse (egit) içinde bunu çözdüm :

  1. yerel şubeyi silme
  2. yeni şube olarak uzak repo şube çekin.

Adımlar:

  • Git Deposunu Keşfetme perspektifine gidin
  • yerel şubeyi "zzz" olarak yeniden adlandırın (paranoyak, doğru yaptığımdan emin oluncaya kadar silmek istemiyorum!)
  • "Şubeler", "Geç", "Yeni Şube"
  • "Kaynak ref" listesini aşağı çekin, "test" dalını seçin (çekme stratejisi "birleştirme", "Checkout yeni dal" işaretli)
  • "bitir" i tıklayın
  • Her zamanki perspektife geçin, dosyalarımın mevcut olduğundan emin olun
  • Git Deposuna dönme "zzz" dalını keşfetme ve silme

Not: Eclipse Indigo kullanıyorum. Diğer sürümlerde adımlar farklı olabilir.


9

Ben sadece aynı sorunu aldım ama kabul edilen cevap benim için işe yaramadı. Yaptığım şey (kabul edilen cevabın güncellenmiş yapılandırma kaldığı için bir etkisi olup olmadığını doğrulayamamam rağmen):

Git depo ağacınızı 'Git Depoları' görünümünden genişletin.

'Uzaktan kumandalar'a sağ tıklayın ve' Uzaktan Kumanda Oluştur'u seçin

'Getirmeyi yapılandır' radyo düğmesini seçin -> 'Tamam'

'URI' metin kutusunun karşısındaki 'Değiştir'i seçin

Git deposu ayrıntılarınızı girin ve 'Son'u tıklayın

'Kaydet'i seçin

Artık uzak depodan çekebilmeniz gerekir.

Not - Ben sadece bir bağlantı testi olduğunu düşünüyorum 'Dry-Run' denedim başarısız oldu ama çekme hala çalıştı.


Mükemmel çalışıyor. Bu soru için benzer çözüm stackoverflow.com/a/10662106/759452
Adrien

3

Gview çözümü hakkında:

then find the .git directory in that working directory and edit the .git/config file with a text editor

Kendiniz bulmanıza veya bir metin düzenleyicisiyle açmanıza gerek yoktur.

  • Pencere -> Görünümü göster -> Diğer -> GIT -> Git Depoları
  • Oluşturduğunuz repo klasörünü genişletin.
  • "Çalışma Dizini" adlı bir klasörü içerecek şekilde genişletin.
  • "Çalışma Dizini" klasörünün içinde ".git" adı verilen bir klasör olacaktır.
  • ".Git" içinde "config" olacak, "config" 'i sağ tıklayın -> editörde aç. Yapılandırma dosyası, Eclipse'de düzenleyebileceğiniz doğrudan açılır. Aşağıdakileri ekledim ve şimdi hatasız çekebilirim:

[şube "ana"]

uzak = başlangıç

birleştirme = refs / kafalar / master


2

Ne eclispe kullanarak çalıştı buldum (bu kesinlikle bu konuda gitmek için doğru bir yol değil ama işe yarıyor): uzak depoya itmek, yerel çalışma alanı ve depo silmek, ithalat diyalog kullanarak git ithalat. İçe aktarma sihirbazı, gelecekteki çekmeler için her şeyi ayarlamaya özen gösterir.


2

Windows-> Görünümü Göster-> Gezgin'i deneyin. Gezgin pencerelerinde projenizde bin klasörü bulun. Yukarıdaki tüm görevlerden sonra çekmeyi veya getirmeyi deneyin.


2
The current branch is not configured for pull.
No value for key branch.master.merge found in configuration

İçin bir alternatif PULL (yukarıdaki hatadan kaçınmak):

  1. GETİRMakinenizdeki uzak güncellemek için
  2. Yerel şubenizin uzak şubenizle BİRLEŞTİRİLMESİ
    (Takım -> Birleştir ... -> Uzaktan İzleme -> başlangıç ​​/ şube )

2

git veri havuzu görünümü -> + şube -> yerel -> uzak olana atamak istediğiniz yerel dalı seçin -> sağ tıklatın -> uzaktan kumandayı (muhtemelen başlangıç ​​noktası) ve yukarı akış dalını seçin


Bu, "yapılandırma dosyası" üzerinde herhangi bir değişiklik yapılmadan tutulma ile sonuçlandı. Soru tutulmaya özgü olduğu için kabul edilen cevap olmalıdır.
josephus

1

Eclipse Git eklentisini kullanırken bulduğum en basit çözüm aşağıdaki gibidir:

  1. Projeye sağ tıklayın ve Ekip> Push Branch'i seçin
  2. "İtme ve çekme için yukarı akış yapılandır" ın yanındaki kutunun işaretli olduğundan emin olun.
  3. İleri'yi tıklayın ve itme işlemini tamamlayın.

Bu tamamlandıktan sonra, şube artık çekme için de doğru şekilde yapılandırılacaktır.


1

depo .git klasörünüzdeki yapılandırma dosyasını bu şekilde düzenleyin.

değiştirmek https://github.com/your/urigithub deposu uri ile .

iyi şanslar.

[core]
    symlinks = false
    repositoryformatversion = 0
    filemode = false
    logallrefupdates = true
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "origin"]
    url = https://github.com/your/uri
    fetch = +refs/heads/*:refs/remotes/origin/*

ps: fikir kullanın, tutulmayı unutun


0

Yapılandırma dosyanızı bu kodla değiştirmeniz gerekir. Yapılandırma dosyanız deponuzdaki 'git' klasörünün içinde bulunur. 'Git' klasörü gizlidir, bu yüzden önce gizli dosyaları göstermeniz gerekir. Yapılandırma dosyasını açın ve şu kodları yazın: -

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true


hideDotFiles = dotGitOnly
[remote "origin"]
url = 'url to the git repository that you want to pull'
fetch = 

+refs/heads/*:refs/remotes/origin/*
puttykeyfile = 
[branch "master"]
remote = origin
merge = refs/heads/master
[gui]
wmstate = normal


geometry = 887x427+66+66 171 192

0

Eclipse Neon'da da aynı sorunu yaşadım. Ama çözümlerin hiçbiri benim için işe yaramadı. Projenin dalını değiştirdiğimde sorunu aldım ve sonra bu hatayı attı. Denediğim çözüm:

  1. Git / .git / config proje dosyasını.
  2. Eğer Rebase = false çıkarın.
  3. Projenizi yenileyin.
  4. Tutulmadan çek veya çek git git.
  5. Hata çözüldü.

Not: Eski bir iş parçacığı olduğu için, başka biri için gelebileceği için güncelleme.


0

Taahhüt ederken, bu sorunla karşılaşırsanız. Bu basit yaklaşımı deneyin:

  1. Takım-> Yukarıya doğru it - Bir açılır pencere açılır.
  2. URI'nizi kopyalayın ve bu açılır pencereye yapıştırın.

Şube çekmek / itmek için yapılandırılırsınız. Kod değişiklikleriniz depoya aktarılacaktır.

Teşekkürler

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.