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 'git@github.com:{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 git@github.com:{username}/{projectname}.git
  git push origin master

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.


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

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 git@gitorious.org:project/project.git
  4. $ git commit -m "Initial version"
  5. $ git push origin master

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


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 git@github.com: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 git@github.com:Odd-Engine

Nigdy więcej błędu! :)


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


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)


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.


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 git@github.com: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 „git@github.com: eltonstewart / band-of-strangers.git”


1
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git'

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


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 git@git.google.net:cherry 

git push origin master:refs/heads/master

git clone git@git.google.net:cherry test1

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.


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.


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 git@github.com:{username}/wordpress.git
git push -u origin master

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


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.


0

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


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.


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.


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.


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.


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.


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


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


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.


0

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


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ć.


-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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.