Errore nell'origine del push push sul nuovo repository


181

Ho appena iniziato a usare git con github. Ho seguito le loro istruzioni e ho riscontrato errori nell'ultimo passaggio. Sto eseguendo il check-in in una directory esistente che non è attualmente controllata dal codice sorgente (progetto di circa una settimana). A parte questo, il mio caso d'uso dovrebbe essere piuttosto semplice.

Ecco cosa sta succedendo:

$ 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'

Istruzioni di Github:

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
Sembra che il commit iniziale non abbia funzionato per qualsiasi motivo. Git log mi ha aiutato a vedere se il commit funziona o meno. Sono riuscito a riprovare il giorno successivo. Grazie!
sutee

1
Se non aggiungi alcun file, esegui il commit o esegui git init, otterrai sempre questo tipo di problemi. Pertanto, corri sempre git statusper vedere se tutto è OK.
Raduken,

errore simile durante la creazione di un ramo in un repository git appena creato da codice esistente. Risolto l'errore clonando il repository git.
user553620


Possibile duplicato di errore quando "git push" su github .

Risposte:


137

Il messaggio di errore porta alla conclusione che non si dispone di un masterramo nel repository locale. Spingi il tuo ramo di sviluppo principale ( git push origin my-local-master:masterche lo rinominerà mastersu github) o esegui prima un commit. Non è possibile inviare un repository completamente vuoto.


10
Ho avuto il problema "archivio vuoto", poiché la guida pertinente a cui fa riferimento GitHub ( beans.seartipy.com/2008/12/09/… ) non ha menzionato il comando "git commit -m 'first commit'". Una volta che l'ho usato, tutto andava bene!
Pascal Lindelauf,

3
Mi ero appena dimenticato di impegnare le mie modifiche.
Nick Josevski l'

Quando dici git push origin my-local-master:masterche cosa significa my-local-master? Se ho un nome di CSS-pix della mia cartella che voglio spingere
Nofel

187

Stavo avendo lo stesso problema e poi mi sono colpito alla testa perché non avevo effettivamente aggiunto i miei file di progetto.

git add -A
git commit -am "message"
git push origin master

Sì, avevo provato quanto segue, ma la soluzione per me era usare invece il tuo comando: git add * La sintassi corretta era: git add.
Eric Martindale,

5
Ha fatto la stessa cosa ... jeesh. Grazie!
cbmeeks,

28

Ho avuto lo stesso problema. Ho cancellato la cartella .git quindi ho seguito i seguenti comandi

  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

Ho lo stesso problema. ha risolto il mio problema. Se inizi il tuo git. devi fare sul terminale

1) git add .

2)git commit -m "first commit"

Per inviare a bitbucket

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


6

Ho avuto lo stesso problema durante la creazione del mio primo repository Git di sempre. Ho avuto un refuso nella creazione remota dell'origine Git - risulta che non ho capitalizzato il nome del mio repository.

 git remote add origin git@github.com:Odd-engine

Per prima cosa ho rimosso il vecchio telecomando usando

git remote rm origin

Quindi ho ricreato l'origine, assicurandomi che il nome della mia origine sia stato digitato ESATTAMENTE nello stesso modo in cui è stata scritta la mia origine.

git remote add origin git@github.com:Odd-Engine

Niente più errori! :)


4

Ho avuto lo stesso errore, poiché Bombe ha detto che non avevo un ramo locale chiamato master nella mia configurazione, sebbene git branchabbia elencato un ramo chiamato master ...

Per risolverlo basta aggiungere questo al tuo .git / config

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

Kinda hacky, ma fa il lavoro


3

assicurati di essere su un ramo, almeno nel ramo principale

genere:

git branch

tu dovresti vedere:

ubuntu-user: ~ / git / turmeric-releng $ git branch

* (no branch)
master

quindi digitare:

git checkout master

quindi tutte le modifiche si adatteranno al ramo principale (o al ramo che scegli)


2

Per risolvere effettivamente il problema ho usato il seguente comando per mettere in scena tutti i miei file per il commit.

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

Il problema che avevo era che il comando -u in git add non aggiungeva effettivamente i nuovi file e il comando git add -A non era supportato nella mia installazione di git. Quindi, come menzionato in questa discussione, l'impegno che stavo cercando di mettere in scena era vuoto.


ha funzionato per me! Ho provato con troppi comandi e nulla è cambiato ... ma questa è stata la soluzione per me!
Karensantana,

1

ho risolto il mio problema ....

non sono sicuro di quale fosse il problema, ma usando l'interfaccia gitx per eseguire il commit dei miei file in fasi, quindi ...

$ git push origin master

lavorato...

Sto avendo lo stesso problema...

creato una nuova cartella aggiunta nei file modello bort ...

$ git commit -m 'first commit'

$ git remote add origin git@github.com:eltonstewart/band-of-strangers.git

$ git push origin master

quindi ottengo lo stesso errore ...

errore: src refspec master non corrisponde a nessuno.
fatale: la fine remota ha riattaccato inaspettatamente
errore: impossibile inviare alcuni riferimenti a "git@github.com: eltonstewart / band-of-strangers.git"


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

A meno che non si generalizzi il messaggio di errore, sembra che tu abbia letteralmente messo git@github.com:{username}/{projectname}.gitil tuo repository Git remoto. Devi inserire il {username}tuo nome utente GitHub e {projectname}il nome del tuo progetto.


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

Ho avuto lo stesso problema. Avevo erroneamente creato la directory nella macchina in minuscolo. Una volta modificato il caso, il problema è stato risolto (ma ho perso le mie 1,5 ore :() Verifichi che il nome della directory e il nome del repository remoto siano gli stessi.


1

Sembra che questa domanda abbia già un numero di risposte, ma soppeserò la mia poiché non ho visto nessuno che risolva il problema che avevo.

Ho avuto questo errore anche su un nuovissimo repository github. Si scopre che l'utente da cui stavo spingendo non aveva accesso push. Per qualche motivo, ciò provoca un errore "ERRORE: repository non trovato" invece di una sorta di errore di accesso.

Spero comunque che questo aiuti la povera anima che si imbatte nello stesso problema.


1

ha avuto lo stesso problema un minuto fa e poi risolto

crea un repository in github chiamato 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

questo dovrebbe funzionare per risolvere il problema refspec


Grazie ha funzionato per me .. posso sapere qual è la differenza tra "git add". e "git add -A"
Satish Karuturi,

nessuna differenza se si è su v 2.x è importante solo se si è sulla tabella di controllo 1.x per riferimento futuro: stackoverflow.com/a/26039014/640727
David Chase,

0

Ho messo a posto uno spazio dopo il - quindi invece di -m che avevo - m Solo qualcosa da cercare.


0

Penso che nella versione precedente di git, dovresti prima eseguire il commit di almeno un file, quindi puoi "spingere il master origin" ancora una volta.


0

ottimo .. è il problema con la directory vuota solo nient'altro. Ho risolto il mio problema creando un file binario in ciascuna directory e poi li ho aggiunti.


0

Initital add & commit ha funzionato come un fascino. Immagino sia solo una questione di comprensione della metodologia di Git di gestione di un progetto all'interno del repository.

Dopo di che sono riuscito a trasferire immediatamente i miei dati senza problemi.


0

Ho appena riscontrato questo problema e sembra che sia stato causato dalla mia mancata aggiunta di un messaggio di commit personalizzato sopra il messaggio di commit predefinito (ho pensato, perché scrivere "commit iniziale", quando dice chiaramente la stessa cosa nel testo generato da Git sotto di esso).

Il problema si è risolto quando ho rimosso la directory .git, reinizializzato la directory del progetto per Git, aggiunto nuovamente il telecomando GitHub, aggiunto tutti i file al nuovo stage, eseguito il commit con un messaggio personale sopra il messaggio generato automaticamente e inviato a origin / master.


0

Quando si crea un repository su Github, viene aggiunto un file README.md al repository e poiché questo file potrebbe non essere presente nella directory locale o potrebbe avere un contenuto diverso, git push fallirebbe. Per risolvere il problema ho fatto:

git pull origin master
git push origin master

Questa volta ha funzionato da quando ho avuto il file README.md.


0

Prima del primo commit, prova ad aggiungere alcuni file come readme.txt. Questo "forzerà" il repository remoto a creare il branch master nel caso non esistesse. Per me ha funzionato.


0

Questa è una domanda molto vecchia, ma per tutte le persone nuove che finiranno qui come me. Questa soluzione è solo per

error: src refspec master does not match any.

errore per il nuovo repository creato

Devi aggiungere il tuo

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

Solo dopo aver aggiunto e-mail e nome aggiungere file a git e commit

git add .
git commit -m "message"

Funzionerà come un fascino


0

Anch'io ho questo errore, ho messo un impegno per non spingere il progetto vuoto come fanno molte persone ma non funziona

Il problema era il ssl, e ho messo il prossimo

git config --system http.sslverify false

E dopo tutto funziona bene :)

git push origin master


0

Ho avuto lo stesso problema / error.I stava facendo git push -u origin masterinvece ho appena fatto git push origin mastere ha funzionato.


0

vai al pannello di controllo -> gestisci le tue credenziali ed elimina eventuali credenziali github.


0

Saltare un vecchio filo.

Se hai creato un repository su Github con a Readmeo a .gitignore, potresti dover rifare il master locale con il master remoto. Perché, se stai usando uno strumento di impalcatura di progetto, come create-app, crea questi file per te e il master remoto deve essere sincronizzato con il tuo locale prima di spingere.

Se stai creando un repository vuoto su Github, puoi semplicemente spingere.


-1

Ho avuto lo stesso problema, alcuni utenti hanno risposto a questo. Prima di spingere devi avere il tuo primo commit. Ora per i nuovi utenti ho creato una serie di semplici passaggi. Prima di ciò è necessario installare git ed eseguire nella riga di comando:

  • git config user.email "la tua email"
  • git config nome.utente "nome"

I passaggi per la creazione di un repository remoto (utilizzo dropbox come repository remoto):

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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.