Soru src refspec master gitmeyi bastığında herhangi bir eşleşmiyor


Depomu şu şekilde kopyaladım:

git clone ssh://xxxxx/xx.git 

ama bazı dosyaları değiştirdikten sonra add ve commit Onları sunucuya zorlamak istiyorum:

git add xxx.php
git commit -m "TEST"
git push origin master

Ama geri döndüğüm hata:

error: src refspec master does not match any.  
error: failed to push some refs to 'ssh://xxxxx.com/project.git'

1897
2017-11-15 06:09


Menşei


@Marco Bu bir kopya değil. Bu, yerel bir şubeyi uzak bir şubeye itmek konusunda çok özel bir konudur. Bu bir repo başlatmak ve yukarı itmek hakkında. Aynı hatayı üretirler, ancak bu hatayı üreten REASONS ve düzeltmeler tamamen farklıdır. Ayrıca, sinoohe, bir cevabı kabul etmelisin. Muhtemelen ilki, soruyu cevaplarken görüyor ve 350'den fazla insana yardım etti. - tandrewnichols
Git yapılandırma komutlarını, makinenizde global olarak yüklemek ve yapılandırmak için mi kurdunuz? - Igor Ganapolsky
Umarım bu yazı birileri için yararlı olur. samranga.blogspot.com/2015/07/...  Zaten yerel olarak varolan bir projeden bir git BitBucket deposu oluşturulduğunda bile sorudaki hata atılabilir. - Samitha Chathuranga
Yanlış şube adını itmeye çalışırken bu hatayı aldım. Kullanarak çözüldü git status uygun olanı almak için. - Tom Howard
Benioku dosyası eklemek benim için çalıştı - lft93ryt


Cevaplar:


Belki de sadece işlemeye ihtiyacın var. Yaptığımda buna rastladım:

mkdir repo && cd repo
git remote add origin /path/to/origin.git
git add .

Hata! Asla yapmadım!

git push -u origin master
error: src refspec master does not match any.

Tek yapmam gereken:

git commit -m "initial commit"
git push origin master

Başarı!


2973
2017-09-27 16:07



Sadece bu adımı körü körüne takip etmeyin, @Vi'nin bahsettiği şeye bakın ve ardından ref komutunu düzeltmek için push komutunuzu değiştirin. - Kumar
Aynı sorunu yaşadım, sadece itmeden önce yapmayı unutmuşum. Bu sorunu çözdü, teşekkürler! - Shimon Tolts
Bu hatanın en olası nedeni, tüm dosyaların izlenmesi ve eklenmemesidir. git add --all Eğer tüm dosyaları eklemek isterseniz Veya dosyaları seçici olarak ekleyebilirsiniz. Sonra git commit -m "Initial comment", git push origin master. Bu kesinlikle işe yarayacak. - Bhanu Pratap Singh
Güzel bir sorun değil, ama gerçek bir cevaptır Bu asıl soru. - Michael Durrant
git commit -m 'initial commit' çift ​​tırnaklı olmalıdır. 'git commit -m "initial commit"En azından pencerelerde. - Sung Kim


  1. Deneyin git show-ref Ne refs var görmek için. var mı refs/heads/master?

  2. Deneyebilirsin git push origin HEAD:master Daha fazla yerel referans-bağımsız çözüm olarak.


564
2017-11-15 11:24



usta şubem taahhütlerin üstünde değildi! böylece tüm dalların sonunda bir şube oluşturdum ve onları sunucuya aktardım: - sinoohe
git checkout -b testbranch; git itme kaynağı testbranch: master - sinoohe
git show-ref şubemi gösterdi; git push origin HEAD:<branch> benim için çalıştı. - Glen Solsberry
Az önce beni kurtardın Vi. İçin teşekkür ederim git push origin HEAD:master. Ama neden böyle bir şey git push --force origin master çalışmıyor? - shkschneider
@ gms8994 - siz haklısınız. eğer biri bir başkasını ustaya itmek yerine ilk şey olarak yaratırsa, aynı unfriendly hata ortaya çıkıyor. kullanım git push origin <branch> yerine master denemesi durumunda git checkout -b <branch> İlk önce herhangi bir İLK itme öncesi git remote add origin <url> - asyncwait


Yerel bilgisayarımdaki tüm dosyaları sildikten sonra da benzer bir hata yaşadım ve depodaki tüm dosyaları temizlemem gerekiyor.

Hata mesajım şunun gibi bir şeydi:

error: src refspec master does not match any.
error: failed to push some refs to 'git@github ... .git'

ve aşağıdaki komutları çalıştırarak çözüldü:

touch README
git add README

git add (all other files)
git commit -m 'reinitialized files'
git push origin master --force  # <- caution, --force can delete others work.

İşte bu, umarım yardımcı olur.


187
2018-01-04 17:03



Diğer cevaplar, sahip olduğum problemi çözmedi (örneğin, zaten yapmıştım ve hala bu hatayı yapmıştım). git push origin BRANCH --force çalıştı. Teşekkür ederim! - Lemmings19
Görmek bu önceki cevap. Bir dosya eklemeniz gerektiğinden şüpheleniyorum çünkü git boş dizinleri izlemiyor.
push -force, aynı zamanda iş arkadaşlarının sıkı çalışmasını tamamen ortadan kaldırabilirdi. Eklenen uyarı. - Michael Durrant
Bu benim problemimi çözdü. Sanırım git bunu yaptı. Gitmeden önce şeyleri itmek bir şeyleri fark etmese de, bu yüzden problemim vardı. git add komutu benim problemimi çözdü. bundan sonra da --force olmadan zorlayabiliyordum. Teşekkürler Aryo - Anandaraja_Srinivasan
Bu çözüldü git 'README' olmadan itme alışkanlık gibi görünüyor - Jimmy Obonyo Abor


  1. Değişikliklerim zaten taahhüt edildi
  2. Zorla itme hala bana aynı hatayı verdi.

Bende denedim Vi çözümü:

git push origin HEAD:<remoteBranch> 

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


145
2018-05-06 17:27



Sonunda olduğunu öğrendim çünkü şube adını yanlış yazdım. Ben başarıyla şube A B ile bir şube ile kökeni itti. git push origin HEAD:Bama ben her zaman aynı hata ile devam ediyorum git push origin A dalı üzerinde - Yi H.
@YiHuang, teşekkürler, daha önce şube ismimi kontrol ettim ve daha sonra yorumunuz nedeniyle tekrar kontrol ettim - aynı sorunu yaşadım, yanlış yazdım. - lakesare
@ YiH.i, şube ismimin doğru olduğundan emin oldu, ancak yorumunuzu okuduktan sonra tekrar kontrol ettim ve kötü - aynı sorunla karşılaştı. - Null Pointer


Benim için emin olmak zorundaydım Genel anahtar Sunucuda (~ / .ssh / authorized_keys olarak eklenmiş) ve github / bitbucket'te (github veya bitbucket üzerindeki SSH anahtarlarına eklenmiş) uygun şekilde yapılandırılmış - eşleşmeleri gerekir.

Sonra:

git add --all :/

git commit -am 'message'

git push -u origin master

Sonunda benim için çalıştım.


96
2017-09-02 01:56



Geçerli ama farklı bir sorun. -u burada yardımcı oldu. - Michael Durrant
Teşekkür ederim! Bu bana yardımcı olan tek çözüm oldu - Matan Dahan
Teşekkürler beni kurtar - core114
Bu çözüm sorunu çözdü. Teşekkürler :) - Sahil Gupta


Eksik veya atlama git add . veya git commit bu hatayı neden olabilir:

git push -u origin master
Username for 'https://github.com': yourusername
Password for 'https://yourusername@github.com': 
error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/yourusername/foobar.git'

Düzeltmek için uygun sırayı yeniden başlatın ve izleyin:

git init
git add .
git commit -m 'message'
git *create remote
git push -u origin master

62
2017-11-03 20:30



git: '* oluştur' bir git komutu değil. 'Git --help' konusuna bakın. - sam
Bu doğru, iş sonu daha spesifik git remote add __REMOTE_NAME__ __URL_OR_SSH__ve uzak adın üstünde "kökeni" - aug2uag
Sorularına eklediler ve işlediler, böylece bu, diğer insanlara yardımcı olsa bile sorun değildi. - Michael Durrant
Ancak bu cevap işe yaramadı. -u Burada kullanılan seçenek. - Michael Durrant


Ben sadece bir dizin ekledikten sonra bu yepyeni bir depoda olduğunu gördüm.

Bir dosya eklediğimde (örn. README), git butonu harika çalıştı.


56
2017-09-25 01:44



Bu muhtemelen git çünkü aslında dizinleri değil sadece dosyaları izler. Yani bir dizin boşsa, git aslında eklemez.
OP bir dosya ekledi (xx.php), bu durum bu durumda problem değildi, diğer durumlarda bu bir problem olabilir ve bir dosyaya bir çözüm ekleyebilir. o sorun. - Michael Durrant
Sinir bozucu bir soruna bu kadar basit bir çözüm. Repoların oluşturulmasını ve klonlanmasını test ediyordum ve boş dizinler değil dosyalar yaratıyordum. - James Wierzba
Bu yepyeni bir repo için benim için çalıştı - Anupam


Düzeltmek için uygun kod sırasını yeniden başlatın ve izleyin:

git init
git add .
git commit -m 'message'
git push -u origin master

56
2018-01-12 17:30



-u seçeneği bu işi yaptı. - Michael Durrant
Teşekkürler Pratik. :) - Vikas Gupta