Pytanie src refspec master nie pasuje do żadnego, pchając zatwierdzenia w git


Sklonowałem moje repozytorium za pomocą:

git clone ssh://xxxxx/xx.git 

ale po zmianie niektórych plików i add i commit chcę je przekazać na serwer:

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

Ale błąd, który otrzymuję, to:

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


pochodzenie


@ Marco To nie jest duplikat. Jest to bardzo specyficzny problem związany z przeniesieniem lokalnego oddziału do odległego oddziału. Ta polega na zainicjowaniu repo i popchnięciu go. Występują one z tym samym błędem, ale POWODY powodują ten błąd, a poprawki są całkowicie różne. Ponadto, sinoohe, powinieneś zaakceptować odpowiedź. Prawdopodobnie pierwszy, ponieważ odpowiada na pytanie i pomógł ponad 350 osobom. - tandrewnichols
Czy skonfigurowałeś polecenia git config, aby zainstalować i skonfigurować git globalnie na twoim komputerze? - Igor Ganapolsky
Mam nadzieję, że ten post przyda się komuś samranga.blogspot.com/2015/07/...  Błąd w pytaniu może zostać zerwany, nawet gdy próbowano utworzyć repozytorium gb BitBucket z już istniejącego lokalnie projektu - Samitha Chathuranga
Otrzymałem ten błąd, próbując nacisnąć niewłaściwą nazwę oddziału. Rozwiązano za pomocą git status aby uzyskać właściwy. - Tom Howard
Dodanie pliku readme zadziałało dla mnie - lft93ryt


Odpowiedzi:


Może po prostu musisz się zaangażować. Wpadłem na to, kiedy to zrobiłem:

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

Ups! Nigdy nie popełnione!

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

Wszystko, co musiałem zrobić, to:

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

Powodzenie!


2973
2017-09-27 16:07



Nie podążaj za tym krokiem na ślepo, spójrz na to, co wspomniała @Vi, a następnie zmodyfikuj swoje polecenie push, aby poprawić ref. - Kumar
Miałem ten sam problem, po prostu zapomniałem popełnić przed pchnięciem. Naprawiono problem, dziękuję! - Shimon Tolts
Najbardziej prawdopodobną przyczyną tego błędu jest to, że wszystkie pliki są nieśledzone i nie zostały dodane. git add --all w przypadku, gdy chcesz dodać wszystkie pliki lub możesz selektywnie dodawać pliki. Następnie git commit -m "Initial comment", git push origin master. To na pewno zadziała. - Bhanu Pratap Singh
Naprawiono inny problem, który jest miły, ale nie jest odpowiedzią To aktualne pytanie. - Michael Durrant
git commit -m 'initial commit' powinny być podwójnie cytowane. "git commit -m "initial commit", przynajmniej w oknach. - Sung Kim


  1. Próbować git show-ref żeby zobaczyć, co masz do powiedzenia. Jest tu refs/heads/master?

  2. Możesz spróbować git push origin HEAD:master jako bardziej niezależne od lokalnych rozwiązań rozwiązanie.


564
2017-11-15 11:24



mój główny oddział nie był na szczycie! więc utworzyłem gałąź, która znajdowała się na końcu wszystkich gałęzi i wysłałem je na serwer: - sinoohe
git checkout -b testbranch; git push origin testbranch: master - sinoohe
git show-ref pokazał mój oddział; git push origin HEAD:<branch> pracował dla mnie. - Glen Solsberry
Właśnie uratowałeś mnie Vi. Dziękuję Ci za git push origin HEAD:master. Ale dlaczego coś takiego git push --force origin master nie działa? - shkschneider
@ gms8994 - masz rację. jeśli ktoś tworzy odgałęzienie jako pierwszą rzecz zamiast popychać do mistrza, to samo unfriendly pojawia się błąd. posługiwać się git push origin <branch> zamiast master na wypadek, gdybyś spróbował git checkout -b <branch> przed każdym PIERWSZYM pchnięciem po początkowym git remote add origin <url> - asyncwait


Miałem także podobny błąd po usunięciu wszystkich plików na moim komputerze lokalnym i muszę wyczyścić wszystkie pliki w repozytorium.

Mój komunikat o błędzie był mniej więcej taki:

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

i rozwiązano go, wykonując następujące polecenia:

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.

To wszystko, mam nadzieję, że to pomaga.


187
2018-01-04 17:03



Pozostałe odpowiedzi nie rozwiązały problemu, który miałem (na przykład, już popełniłem i nadal miałem ten błąd), ale robiąc a git push origin BRANCH --force pracował. Dziękuję Ci! - Lemmings19
Widzieć ta wcześniejsza odpowiedź. Podejrzewam, że musisz dodać plik, ponieważ git nie śledzi pustych katalogów.
push - siła może również całkowicie zniszczyć ciężką pracę współpracowników. Dodano ostrzeżenie przez to. - Michael Durrant
To rozwiązało mój problem. Myślę, że Git Add to zrobił. Podczas pchania rzeczy na początku git nie rozpoznaje rzeczy, może dlatego właśnie miałem problem. Polecenie git add rozwiązało mój problem. również później mogłem naciskać bez - siły. Dzięki Aryo - Anandaraja_Srinivasan
To rozwiązane wydaje się jak git nie będzie pchać bez "README" - Jimmy Obonyo Abor


  1. Moje zmiany zostały już popełnione
  2. Pchnięcie Force nadal dawało mi ten sam błąd.

Więc próbowałem Rozwiązanie Vi:

git push origin HEAD:<remoteBranch> 

To działało dla mnie.


145
2018-05-06 17:27



W końcu się dowiedziałem, że to dlatego, że błędnie wpisałem nazwę oddziału. Udało mi się wypchnąć gałąź A do źródła z odgałęzieniem o nazwie B z git push origin HEAD:B, ale wciąż mam ten sam błąd za każdym razem, kiedy naciskałem git push origin na oddziale A. - Yi H.
@ YiHuang, dzięki, sprawdziłem wcześniej nazwę mojej firmy, a potem sprawdziłem ją ponownie z powodu twojego komentarza - miał ten sam problem, został błędnie napisany. - lakesare
@ YiH.i był pewien, że moja nazwa oddziału jest poprawna, ale sprawdziłem ją ponownie po przeczytaniu Twojego komentarza i moje złe - ma ten sam problem. - Null Pointer


Dla mnie musiałem się upewnić, że klucz publiczny jest poprawnie skonfigurowany na serwerze (dołączony w ~ / .ssh / authorized_keys) i github / bitbucket (dodany do moich kluczy SSH na github lub bitbucket) - muszą pasować.

Następnie:

git add --all :/

git commit -am 'message'

git push -u origin master

W końcu mi się udało.


96
2017-09-02 01:56



Ważny, ale inny problem. -u pomógł tutaj. - Michael Durrant
Dziękuję Ci! to było jedyne rozwiązanie, które mi pomogło - Matan Dahan
Dzięki, ratujesz mnie - core114
To rozwiązanie rozwiązało problem. Dzięki :) - Sahil Gupta


Brakujące lub przeskakujące git add . lub git commit może powodować ten błąd:

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'

Aby to naprawić, uruchom ponownie i wykonaj odpowiednią sekwencję:

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

62
2017-11-03 20:30



git: '* create' nie jest poleceniem git. Zobacz "git - help". - sam
To prawda, koniec działalności jest bardziej konkretny git remote add __REMOTE_NAME__ __URL_OR_SSH__, a nad zdalną nazwą jest "origin" - aug2uag
Dodali i zadeklarowali w swoim pytaniu, że nie było to problemem, mimo że pomaga to innym ludziom. - Michael Durrant
Ta odpowiedź zadziałała jednak ze względu na -u opcja, która została tu zastosowana. - Michael Durrant


Znalazłem to w zupełnie nowym repozytorium po tym, jak git dodał tylko katalog.

Jak tylko dodałem plik (na przykład README), git push działał świetnie.


56
2017-09-25 01:44



Prawdopodobnie działa, ponieważ git nie śledzi katalogów, tylko plików. Więc jeśli katalog jest pusty, git go nie doda.
OP dodał plik (xx.php), więc nie był to problem w tym przypadku, chociaż w innych przypadkach może to być problem i dodanie pliku rozwiązania że problem. - Michael Durrant
Takie proste rozwiązanie frustrującego problemu. Testowałem tworzenie i klonowanie repozy i tworzyłem puste katalogi, a nie pliki. - James Wierzba
To właśnie zadziałało dla mnie na zupełnie nowe repozytorium - Anupam


Aby to naprawić, ponownie zainicjuj i postępuj zgodnie z właściwą sekwencją kodu:

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

56
2018-01-12 17:30



The -u opcja wykonała tę pracę. - Michael Durrant
Dzięki, Pratik. :) - Vikas Gupta


git push -u origin master błąd: src refspec master nie pasuje do żadnego.

W tym celu należy wprowadzić komunikat zatwierdzenia, a następnie nacisnąć kod

git commit -m "initial commit"

git push origin master

Z powodzeniem popychany do opanowania


55
2017-08-09 09:22





Dzieje się tak również, gdy znajdujesz się w konkretnej gałęzi i próbujesz przesunąć inną gałąź, która jeszcze nie istnieje, np .:

$ git branch
* version-x  # you are in this branch
  version-y

$ git push -u origin master
error: src refspec master does not match any.
error: failed to push some refs to 'origin_address'

37
2018-05-23 17:43



LOL. Próbowałem wypchnąć do mistrza pochodzenia, ale ta gałąź nie istniała. Nazywa się stabilny początek. - penner
The -u może pomogło tutaj. - Michael Durrant
W powyższym przypadku problemem jest oczywiście brak lokalnego oddziału master, więc nie możesz tego popchnąć. Musisz albo nacisnąć istniejący oddział - albo utworzyć główny oddział, a następnie go wypchnąć, tak jak poniżej: git checkout -b master; git push -u origin master; - tanius
Właśnie dostałem to, kiedy błędnie napisałem nazwę oddziału. - Sebastian Ärleryd
Mój lokalny oddział został napisany "s"heduler "i robiłem git push origin scheduler. HA! Jedna litera off zabije cię w programowaniu. lol - protoEvangelion