Błąd wzorca wypychania w nowym repozytorium

181

Właśnie zacząłem używać git z github. Postępowałem zgodnie z ich instrukcjami i na ostatnim kroku napotkałem błędy. Sprawdzam w istniejącym katalogu, który nie jest obecnie kontrolowany przez źródło (projekt w wieku około tygodnia). Poza tym mój przypadek użycia powinien być całkiem niezły.

Oto co się dzieje:

$ git push origin master
error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '[email protected]:{username}/{projectname}.git'

Instrukcje Githuba:

Global setup:

  Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email {username}@gmail.com

Next steps:

  mkdir projectname
  cd projectname
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin [email protected]:{username}/{projectname}.git
  git push origin master
sutee
źródło
4
Wygląda na to, że początkowe zatwierdzenie nie zadziałało z jakiegokolwiek powodu. Dziennik Git pomógł mi sprawdzić, czy zatwierdzenie działa. Udało mi się spróbować ponownie następnego dnia. Dzięki!
sutee
1
Jeśli nie dodajesz żadnych plików, nie zatwierdzasz ani nie uruchamiasz git init, zawsze masz tego rodzaju problemy. Dlatego zawsze biegnij, git statusaby sprawdzić, czy wszystko jest w porządku.
raduken
podobny błąd podczas tworzenia gałęzi do nowo utworzonego repozytorium git z istniejącego kodu. Rozwiązano błąd, klonując repozytorium git.
user553620

Odpowiedzi:

137

Komunikat o błędzie prowadzi do wniosku, że nie masz masteroddziału w lokalnym repozytorium. Wciśnij główną gałąź rozwoju ( git push origin my-local-master:masterktóra zmieni jej nazwę masterna github) lub najpierw zatwierdź. Nie można wcisnąć całkowicie pustego repozytorium.

Bombe
źródło
10
Miałem problem z „pustym repozytorium”, ponieważ odpowiedni przewodnik, do którego odwołuje się GitHub ( beans.seartipy.com/2008/12/09/… ), nie wspomniał o komendzie „git commit -m 'first commit”. Kiedyś tego użyłem, wszystko było w porządku!
Pascal Lindelauf,
3
Właśnie zapomniałem dokonać zmian.
Nick Josevski,
Kiedy mówisz, git push origin my-local-master:masterco to oznacza my-local-master? Jeśli mam nazwę CSS-pix mojego folderu, który chcę wypchnąć
Nofel
187

Miałem ten sam problem, a potem uderzyłem się w głowę, ponieważ tak naprawdę nie dodałem plików projektu.

git add -A
git commit -am "message"
git push origin master
Joey Green
źródło
Tak, próbowałem następujących, ale rozwiązaniem było dla mnie użycie polecenia: git add * Poprawna składnia to: git add.
Eric Martindale,
5
Czy TO SAMA rzecz ... jeesh. Dzięki!
cbmeeks
28

Miałem ten sam problem. Usunąłem folder .git, a następnie wykonałem następujące polecenia

  1. $ git init
  2. $ git add .
  3. $ git remote add origin [email protected]:project/project.git
  4. $ git commit -m "Initial version"
  5. $ git push origin master
sugnan prabhu
źródło
9

Mam ten sam problem. rozwiązało mój problem. Jeśli zainicjujesz swój git. musisz zrobić na terminalu

1) git add .

2)git commit -m "first commit"

Do wysłania do bitbucket

3) git push -u origin --all # pushes up the repo and its refs for the first time

Erhan Demirci
źródło
6

Właśnie miałem ten sam problem podczas tworzenia mojego pierwszego repozytorium Git. Miałem literówkę w zdalnym tworzeniu Git Origin - okazało się, że nie użyłem nazwy mojego repozytorium.

 git remote add origin [email protected]:Odd-engine

Najpierw usunąłem starego pilota za pomocą

git remote rm origin

Następnie odtworzyłem początek, upewniając się, że nazwa mojego pochodzenia została wpisana DOKŁADNIE w taki sam sposób, jak pisownia mojego pochodzenia.

git remote add origin [email protected]:Odd-Engine

Nigdy więcej błędu! :)

Zagrożenie techniczne
źródło
4

Miałem ten sam błąd, ponieważ Bombe powiedział, że nie mam w mojej konfiguracji lokalnego oddziału o nazwie master git branch nie wymieniłem gałąź o nazwie master ...

Aby to naprawić, po prostu dodaj to do .git / config

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

Trochę hacky, ale spełnia swoje zadanie


źródło
3

upewnij się, że jesteś w gałęzi, przynajmniej w gałęzi głównej

rodzaj:

git branch

powinieneś zobaczyć:

ubuntu-user: ~ / git / turmeric-releng $ gałąź git

* (no branch)
master

następnie wpisz:

git checkout master

wszystkie zmiany zmieszczą się w gałęzi master (lub gałęzi, którą wybierzesz)

Jose Alvarez muguerza
źródło
2

Aby faktycznie rozwiązać problem, użyłem następującego polecenia, aby wyrównać wszystkie moje pliki do zatwierdzenia.

$ git add .
$ git commit -m 'Your message here'
$ git push origin master

Problem, który miałem, polegał na tym, że polecenie -u w git add nie dodawało nowych plików, a polecenie git add -A nie było obsługiwane w mojej instalacji git. Tak więc, jak wspomniano w tym wątku, zatwierdzenie, które próbowałem wykonać, było puste.

Asciant
źródło
zadziałało dla mnie! Próbowałem za dużo poleceń i nic się nie zmieniło ... ale to było dla mnie rozwiązanie!
karensantana
1

naprawiłem mój problem ....

nie jestem pewien, na czym polega problem, ale używając interfejsu gitx do zatwierdzania moich plików etapowych, a następnie ...

$ git push origin master

pracował ...

mam ten sam problem ...

utworzył nowy folder dodany w plikach szablonów bort ...

$ git commit -m 'first commit'

$ git remote add origin [email protected]:eltonstewart/band-of-strangers.git

$ git push origin master

wtedy pojawia się ten sam błąd ...

błąd: src refspec master nie pasuje do żadnego.
fatal: Zdalny koniec zawiesił się nieoczekiwanie
błąd: nie udało się przesłać niektórych referencji na adres „[email protected]: eltonstewart / band-of-strangers.git”

użytkownik108060
źródło
1
error: failed to push some refs to '[email protected]:{username}/{projectname}.git'

Jeśli nie uogólniasz komunikatu o błędzie, wygląda to tak, jakbyś dosłownie przedstawił się [email protected]:{username}/{projectname}.gitjako zdalne repozytorium Git. Powinieneś wpisać {username}swoją nazwę użytkownika GitHub oraz nazwę {projectname}swojego projektu.

mipadi
źródło
1
cd  app 

git init 

git status 

touch  test 

git add . 

git commit  -a  -m"message to log " 

git commit  -a  -m "message to log" 

git remote add origin 

 git remote add origin [email protected]:cherry 

git push origin master:refs/heads/master

git clone [email protected]:cherry test1
shrikant
źródło
1

Miałem ten sam problem. Przez pomyłkę utworzyłem katalog na maszynie małymi literami. Po zmianie sprawy problem został rozwiązany (ale zmarnowałem moje 1,5 godziny :() Sprawdź, czy nazwa katalogu i nazwa zdalnego repo są takie same.

saathi
źródło
1

Wygląda na to, że to pytanie ma już wiele odpowiedzi, ale rozważę moje, ponieważ nie widziałem żadnej, która dotyczyłaby mojego problemu.

Miałem ten błąd również w zupełnie nowym repozytorium github. Okazuje się, że użytkownik, z którego wypychałem, nie miał dostępu push. Z jakiegoś powodu powoduje to błąd „BŁĄD: nie znaleziono repozytorium” zamiast jakiegoś błędu dostępu.

W każdym razie mam nadzieję, że pomoże to biednej duszy, która napotyka ten sam problem.

Tomek
źródło
1

przed chwilą miałem ten sam problem, a następnie go naprawiłem

utwórz repozytorium w github o nazwie wordpress ...

cd wordpress
git init
git add -A
git commit -am “WordPress 3.1.3″ or any message
git remote add origin [email protected]:{username}/wordpress.git
git push -u origin master

powinno to działać w celu rozwiązania problemu z refspec

David Chase
źródło
Dzięki, że dla mnie działa. Czy mogę wiedzieć, jaka jest różnica między „git add”. i „git add -A”
Satish Karuturi,
bez różnicy, jeśli korzystasz z wersji 2.x, ma to znaczenie tylko, jeśli korzystasz z tabeli kontrolnej 1.x do przyszłego ref: stackoverflow.com/a/26039014/640727
David Chase,
0

Błędnie umieściłem spację po - więc zamiast -m miałem -m Po prostu coś do poszukiwania.

Brad Madigan
źródło
0

Myślę, że w starszej wersji git powinieneś najpierw zatwierdzić co najmniej jeden plik, a potem ponownie „wypchnąć master źródłowy”.

deddihp
źródło
0

świetnie .. to jest problem z pustym katalogiem tylko niczym innym. Problem został rozwiązany przez utworzenie jednego pliku binarnego w każdym katalogu, a następnie ich dodanie.

shailesh
źródło
0

Początkowe dodawanie i zatwierdzanie działało jak urok. Myślę, że to tylko kwestia zrozumienia metodologii Git zarządzania projektem w repozytorium.

Potem udało mi się od razu przesłać moje dane bez żadnych problemów.

Matthew Morek
źródło
0

Właśnie napotkałem ten problem i wydawało się, że jest to spowodowane tym, że nie dodałem niestandardowego komunikatu zatwierdzenia powyżej domyślnego komunikatu zatwierdzenia (pomyślałem, po co pisać „wstępne zatwierdzenie”, kiedy wyraźnie mówi to samo w tekście wygenerowanym przez Git pod tym).

Problem został rozwiązany, gdy usunąłem katalog .git, ponownie zainicjowałem katalog projektu dla Git, ponownie dodałem zdalny GitHub, dodałem wszystkie pliki do nowego etapu, zatwierdziłem osobistą wiadomością powyżej wiadomości wygenerowanej automatycznie i pchnąłem do pochodzenie / mistrz.

2540625
źródło
0

Kiedy tworzysz repozytorium w Github, dodaje on plik README.md do repozytorium, a ponieważ ten plik może nie być w twoim katalogu lokalnym lub może mieć inną zawartość, git push nie powiedzie się. Aby rozwiązać problem, zrobiłem:

git pull origin master
git push origin master

Tym razem zadziałało, ponieważ miałem plik README.md.

Sahil Singh
źródło
0

Przed pierwszym zatwierdzeniem spróbuj dodać plik, taki jak readme.txt. Spowoduje to „wymuszenie” zdalnego repozytorium utworzenia głównego oddziału w przypadku, gdy nie istnieje. To mi zadziałało.

Everton ZP
źródło
0

To bardzo stare pytanie, ale dla wszystkich nowych ludzi, którzy skończą tutaj jak ja. To rozwiązanie jest tylko dla

error: src refspec master does not match any.

błąd dla utworzonego nowego repozytorium

Musisz dodać swój

git config user.email "your email"
git config user.name "name"

Dopiero po dodaniu adresu e-mail i nazwy dodaj pliki do git i zatwierdź

git add .
git commit -m "message"

Będzie działać jak urok

Pankaj
źródło
0

Mam również ten błąd, wstawiłem zatwierdzenie, aby nie wypychać pustego projektu, jak wiele osób robi, ale nie działa

Problem polegał na tym, że ssl był następny

git config --system http.sslverify false

A potem wszystko działa dobrze :)

git push master origin

Eduardo Chávez
źródło
0

Miałem ten sam problem / błąd. git push -u origin masterZamiast tego właśnie to zrobiłem git push origin masteri zadziałało.

Ali Akram
źródło
0

przejdź do panelu sterowania -> zarządzaj danymi uwierzytelniającymi i usuń dane logowania github, jeśli takie istnieją.

sudip lahiri
źródło
0

Wpadam na stary wątek.

Jeśli utworzyłeś repozytorium na Github za pomocą a Readmelub a.gitignore , być może będziesz musiał zmienić bazę master lokalnego za pomocą zdalnego mistrza. Ponieważ jeśli używasz narzędzia do rusztowania projektu, takiego jak create-app, tworzy on te pliki, a zdalny master musi zostać zsynchronizowany z twoim lokalnym przed pchnięciem.

Jeśli tworzysz puste repozytorium w Github, możesz po prostu pchać.

Rutwick Gangurde
źródło
-1

Miałem ten sam problem, niektórzy użytkownicy odpowiedzieli na to. Przed wypchnięciem musisz mieć swoje pierwsze zatwierdzenie. Teraz dla nowych użytkowników stworzyłem serię prostych kroków. Wcześniej musisz zainstalować git i uruchomić w wierszu poleceń:

  • git config user.email „twój e-mail”
  • git config nazwa użytkownika. nazwa „nazwa”

Kroki tworzenia zdalnego repozytorium (używam Dropbox jako zdalnego repozytorium):

1. create a directory in Dropbox (or on your remote server)
2. go to the Dropbox dir (remote server dir)
3. type git command: git init --bare
4. on your local drive create your local directory
5. go to local directory
6. type git command: git init
7. add initial files, by typing git command:: git add <filename> 
8. type git command: git commit -a -m "initial version" (if you don't commit you can't do the initial push
9. type git command: git remote add name <path to Dropbox/remote server> 
10. git push name brach (for first commit the branch should be master)
Lara
źródło