ölümcül: Geçerli şube yöneticisinin akış yukarı şubesi yok


227

Projelerimden birini github'a aktarmaya çalışıyorum ve bu hatayı almaya devam ediyorum:

peeplesoft@jane3:~/846156 (master) $ git push

fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

     git push --set-upstream origin master

Bu yüzden denedim ve anladım:

peeplesoft@jane3:~/846156 (master) $ git push --set-upstream origin master

fatal: Authentication failed

Başka bir stackoverflow iş parçacığı, hayal kırıklığı yaratan sonuçları ile aşağıdakileri denemek önerdi.

peeplesoft@jane3:~/846156 (master) $ git push -u origin master

fatal: Authentication failed

Sonra bunu denedim:

peeplesoft@jane3:~/846156 (master) $ git config remote.origin.push HEAD

peeplesoft@jane3:~/846156 (master) $ git push

fatal: Authentication failed

İpucu var mı?


1
Repo, itebilmeniz için önce github'da bulunmalıdır . Yapar? Ve çalıştığınız repo onun bir kopyası mı?
mat

Repoyu Github'dan klonladım, sonra bir benioku dosyasına 1 satır ekledim ve sonra geri itmeye çalıştım.
user1524361

1
ben aynı hatayı alıyordum çünkü dosyaları
Mateen

3
-u ve --set-upstream aynı
brainLoop

Herkesin gitOP'nin verdiği komutları bilmesine izin vermek istedim, cevaplardan bile daha fazla
Nathan

Yanıtlar:


94

Push'u düzelttiniz, ancak, bu push sorunundan bağımsız olarak (" Neden açıkça yeni bir şube göndermem gerekiyor? " Bölümünde açıkladığım : git push -u origin masterveya git push -u origin --all), kimlik doğrulama sorununu çözmek için şimdi ihtiyacınız var.

Bu, URL'nize (olduğu gibi ssh git@github.com/yourRepoveya olduğu gibi https https://github.com/You/YourRepo) bağlıdır

Https URL'si için:

Hesabınız iki faktörlü kimlik doğrulamayla korunuyorsa , burada veya burada açıklandığı gibi normal şifreniz (https url için) çalışmaz .

Parolanız özel karakter içeriyorsa aynı sorun ( bu yanıtta olduğu gibi )

Https işe yaramazsa (ikincil bir anahtar, bir PAT: kişisel Erişim Jetonu oluşturmak istemediğiniz için), burada gösterdiğim gibi ssh'a geçebilirsiniz .


Yorumlarda qwerty tarafından belirtildiği gibi , uzaktan kumandanın üzerinde aynı addaki dalı otomatik olarak oluşturabilirsiniz:

git push -u origin head 

Neden?

  • BAŞ (sizin bakınız .git\HEADdosyası) henüz kontrol şube refspec sahiptir (örneğin: ref: refs/heads/master)
  • Varsayılan itme politikası olduğunu basit

Bu push için kullanılan refpec head: (hedef yok) olduğundan, eksik :<dst>olan <src>(dal olan head) ile aynı ref'yi güncellemenin bir yolu yoktur .

HEAD ayrılırsa bu işe yaramaz .


1
harika, bu sadece yüzeyde düzeltmek değil, kök neden sorununu düzeltmek için ihtiyacımız olan şey
workplaylifecycle

Herhangi bir dalda iseniz, bu yararlıdır git push origin head -u. Uzaktan kumandada aynı addaki dalı otomatik olarak oluşturur.
Qwerty

1
@ Qwerty Teşekkür ederim, iyi bir nokta. Daha fazla görünürlük için yorumunuzu (ek ayrıntılarla) yanıta ekledim.
VonC

115

Ayrıca aşağıdaki komutu kullanabilirsiniz:

git push -u origin master

Bu, uzak deponuzda başka bir dal oluşturur (-u). Ssh kullanarak kimlik doğrulaması yapıldıktan sonra.


2
Bu sorunla gerçekten ilgilidir, çünkü sorun kimlik doğrulamasındadır. Ayrıca görevinde zaten denediğini belirtti.
Mike Precup

2
2 nedenden ötürü reddettim. Birincisi: OP bunu zaten denediğini söyledi. İkincisi: -useçenek, --set-upstreamyeni bir dalın oluşturulmasıyla ilgisi olmayan seçeneğin kısayoludur . Gönderen belgelenmesi -uveya --set-upstreamopsiyon : "Bugüne kadar olduğu veya başarılı itilmiş her dalına için, argüman daha az git-çekme [1] ve diğer komutlar tarafından kullanılan memba (izleme) başvuru ekleyin.". Aslında bu cevabın neden yanıltıcı olduğu kadar çok oylandığını anlamıyorum.
louisfischer

38

Görünüşe göre --allilk kez iterken parametreyi unuttuğunuzda da bu hata mesajını alıyorsunuz . yazdım

git push -u origin

ki bu hatayı verdi,

git push -u origin --all

Ah bu kopyala-yapıştır hatalarını nasıl seviyorum ...


3
Teşekkürler. Visual Studio Code'da bu hatayı alıyordum ve bu işe yaradı, ancak birden fazla geliştirici bağlamında biri bunun ne yaptığını açıklayabilir mi?
Cehennem


13

Lütfen bu senaryoyu deneyin

git push -f --set-upstream origin master

7
Bunun nasıl ve neden çalıştığı hakkında daha fazla açıklama yapmalısınız.
Benoît Latinier

6
"fena değil" her şey için gerçekten kötü bir açıklama. "fena değil" cevabınızı gerçekten kötü yapar.
GhostCat

Bu OP belirtilen hatayı gidermek için hiçbir şey yapmaz: "Kimlik doğrulama başarısız"
Sean the Bean

Evet. Benim için işe yaradı. Bunun taahhüdü yukarı (uzak) şubeye zorlamak olduğunu düşünüyorum.
vkg

12

Eylemi git pushkomut satırında hiç refspec verilmemişse , eylemi tanımlarsanız, uzaktan kumandada hiçbir refspec yapılandırılmaz ve komut satırında verilen seçeneklerden hiçbiriyle refspec belirtilmez.

Sadece yap:

git config --global push.default current

sonra

git push

1
Bunun, bazı olumsuz etkileri olabilen genel git ayarlarınızda değişiklik yaptığını bilmeniz gerekir. Ama tam da aradığım şey buydu.
Mavamaarten

@Mavamaarten potansiyel yan etkileri nelerdir?
kosii

7

Yüklerken aynı sorunu yaşıyordum ve yaptığı gibi aynı şeyi yaparak çözdüm: Daha önce terminalde https gibi linux'daki havuzuma aktarmaya çalışıyordum

git push https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git

Ama sonuç alamadım ve bu yüzden daha derine inip denedim:

git push --set-upstream https://github.com/SiddharthChoudhary/ClientServerCloudComputing.git master

Ve işe yaradı. Böylece kullanıcı adı ve parola girmeniz istenir. Ayrıca bir jeton oluşturdum ve Parola yerine jetonu yapıştırdım ve böylece başarıyla yapıldım.

  1. Bir jeton oluşturmak için Github hesabınıza ve Geliştirici Ayarları'na gidin ve ardından başka bir jeton oluşturun.
  2. Bunu aldıktan sonra, bu kodu kopyalayın ve istendiğinde şifre istemine yapıştırın.

6

çok basit bir tarafta, başka şubeleriniz olduğunda, sadece bir kolu itmek için kullanamazsınız

git push

Ancak, itmek istediğiniz şubeyi kontrol etseniz bile, şubeyi şimdi belirtmeniz gerekir.

git push origin <feature_branch>

Nerede masterşube bile olabilir


5

Taahhüt etmeyi unutmak basit bir hata yaptım:

git commit -m "first commit"

sonra git push origin masterçalıştı.


4

Aynı problemim vardı

resim açıklamasını buraya girin

Aşağıdaki komutu kullanarak çözdüm

$ git branch --set-upstream develop origin/develop

ve .git klasöründeki config dosyasına bir config ekler.

resim açıklamasını buraya girin



3

MacOS Sierra'da benim için çalışan basit bir çözüm var. Bu iki komutu yaptım:

git pull --rebase git_url(Ex: https://github.com/username/reponame.git)
git push origin master

Gelecek itme işlemlerinden sonra yukarı akışla ilgili önemli bir hata gösteriyorsa, çalıştırın:

git push --set-upstream origin master

0

1. Bir bilgisayar ve ilişkili github. SSH kullanın. Bilgisayar kodu, burada doğrulanmış resim açıklamasını girmenize gerek yok.

2. git boş klasörü yönetemez. Bu yüzden bir dosyaya kaydedilmiş böyle bir readme.md yazmanız gerekir. Aksi takdirde dosyayı bulamazsınız.

3. Yerel projeniz yeni projelerin taşındığı bir şey değildir. Lütfen

git init

git remote add origin +"githublink"

git add .

git commit -m "" tekrar git.

4. sonragit pull origin master (anahtar)

5. Sonundagit push origin master (tüm sorunu çözmek).

http://my.oschina.net/psuyun/blog/123005参考链接


0

Kodunuzu doğrudan ana şubeye aktarmaya çalışıyorsanız, komutunu kullanın

git push origin master

Bana yardım ediyor.


0

Ben de aynı hatayı aldım sanırım çünkü onu klonlayıp geri itmeye çalışıyorum. $ git push -u origin master Bu doğru komut.

Nesneleri sayma: 8, bitti. 2 dişe kadar delta sıkıştırma. Sıkışan nesneler:% 100 (4/4), bitti. Nesneleri yazma:% 100 (8/8), 691 bayt | 46.00 KiB / s, bitti. Toplam 8 (delta 1), yeniden kullanılan 0 (delta 0) uzaktan: Çözülen deltalar:% 100 (1/1), bitti.

  • [yeni şube] master -> yönetici Uzak şube yöneticisini başlangıç ​​noktasından izlemek için kurulan şube yöneticisi.

    It was successful. Try to create new u branch 
    

0

Aynı problemi yaşadım, nedeni şubeyi belirtmeyi unuttum

git push myorigin feature/23082018_my-feature_eb

0

Benim için değişiklikleri yazma erişimine sahip olmadığım özel bir repoya itiyordum. İtme veya çekme işlemleri gerçekleştirirken geçerli erişim haklarına sahip olduğunuzdan emin olun.

İle doğrudan doğrulayabilirsiniz


1
"Doğrudan doğrula" neyi?
Mike Poole

0

Benim için gizli .git klasörünü silmiştim .

Klasörü silerek, yeniden klonlayarak ve değişiklikleri yeniden yaparak düzelttim.


0

Herhangi bir şubedeyseniz, bunu kullanabilirsiniz:

git push origin head -u

Bu, uzaktan kumandada otomatik olarak aynı ada sahip yeni bir dal oluşturur.


-1

Bu sorunu çözmek için, kodu gitkendisinden kontrol ederken , aşağıdaki gibi komutu vermeniz gerekir:

git checkout -b branchname origin/branchname

Burada, varsayılan olarak ayarlıyoruz the upstream branch, bu nedenle belirtilen sorunla karşı karşıya kalmayacaksınız.


-2

Benim için sorun benim şubemin adından geliyor: "#" benim şubemin adı "," # "olmadan bu iyi iş!

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.