Erreur de maître d'origine sur le nouveau référentiel


181

Je viens de commencer à utiliser git avec github. J'ai suivi leurs instructions et j'ai rencontré des erreurs lors de la dernière étape. Je vérifie dans un répertoire existant qui n'est actuellement pas contrôlé par la source (projet vieux d'environ une semaine). En dehors de cela, mon cas d'utilisation devrait être assez courant.

Voici ce qui se passe:

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

Les instructions de 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
Il semble que le commit initial n'a pas fonctionné pour une raison quelconque. Git log m'a aidé à voir si le commit fonctionne ou non. J'ai réussi à essayer à nouveau le lendemain. Merci!
sutee

1
Si vous n'ajoutez aucun fichier, ne validez pas ou n'exécutez pas git init, vous rencontrez toujours ce genre de problèmes. Par conséquent, exécutez toujours git statuspour voir si tout va bien.
raduken

erreur similaire lors de la création d'une branche vers un référentiel git nouvellement créé à partir de code existant. Résolution de l'erreur en clonant le référentiel git.
user553620


Possibilité de duplication d' erreur lors de «git push» vers github .

Réponses:


137

Le message d'erreur conduit à la conclusion que vous n'avez pas de masterbranche dans votre référentiel local. Poussez votre branche de développement principale ( git push origin my-local-master:masterqui la renommera mastersur github) ou effectuez d'abord un commit. Vous ne pouvez pas pousser un référentiel complètement vide.


10
J'ai eu le problème du "dépôt vide", puisque le guide pertinent référencé par GitHub ( beans.seartipy.com/2008/12/09/… ) ne mentionnait pas la commande "git commit -m 'first commit'". Une fois que j'ai utilisé ça, tout allait bien!
Pascal Lindelauf

3
J'avais juste oublié de valider mes changements.
Nick Josevski

Quand vous dites git push origin my-local-master:masterqu'est-ce que cela veut dire my-local-master? Si j'ai un nom de CSS-pix de mon dossier que je veux pousser
Nofel

187

J'avais le même problème puis je me suis cogné la tête parce que je n'avais pas réellement ajouté mes fichiers de projet.

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

Oui, j'avais essayé ce qui suit, mais la solution pour moi était d'utiliser votre commande à la place: git add * La syntaxe correcte était: git add.
Eric Martindale

5
Est-ce que la MÊME chose ... jeesh. Merci!
cbmeeks

28

J'ai eu le même problème. J'ai supprimé le dossier .git puis suivi les commandes suivantes

  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

J'ai le même problème. cela a résolu mon problème. Si vous lancez votre git. vous devez faire sur le terminal

1) git add .

2)git commit -m "first commit"

Pour envoyer à bitbucket

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


6

J'ai juste eu le même problème lors de la création de mon premier référentiel Git. J'ai eu une faute de frappe dans la création distante d'origine Git - il s'avère que je n'ai pas mis en majuscule le nom de mon référentiel.

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

J'ai d'abord supprimé l'ancienne télécommande en utilisant

git remote rm origin

Ensuite, j'ai recréé l'origine, en m'assurant que le nom de mon origine était tapé EXACTEMENT de la même manière que mon origine était orthographiée.

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

Plus d'erreur! :)


4

J'ai eu la même erreur, comme Bombe a dit que je n'avais pas de branche locale nommée master dans ma config, bien que j'aie listé git branchune branche nommée master ...

Pour résoudre ce problème, ajoutez simplement ceci à votre .git / config

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

Kinda hacky mais fait le travail


3

assurez-vous que vous êtes sur une branche, au moins dans la branche principale

type:

git branch

tu devrais voir:

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

* (no branch)
master

puis tapez:

git checkout master

alors tous vos changements s'intégreront dans la branche principale (ou la branche que vous choisissez)


2

Pour résoudre réellement le problème, j'ai utilisé la commande suivante pour préparer tous mes fichiers à la validation.

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

Le problème que j'ai eu était que la commande -u dans git add n'ajoutait pas réellement les nouveaux fichiers et que la commande git add -A n'était pas prise en charge sur mon installation de git. Ainsi, comme mentionné dans ce fil de discussion, le commit que j'essayais de mettre en scène était vide.


cela a fonctionné pour moi! J'ai essayé avec trop de commandes et rien n'a changé ... mais c'était la solution pour moi!
karensantana

1

j'ai résolu mon problème ...

je ne sais pas quel était le problème mais en utilisant l'interface gitx pour valider mes fichiers intermédiaires, alors ...

$ git push origin master

travaillé...

J'ai le même problème...

a créé un nouveau dossier ajouté dans les fichiers de modèle de bort ...

$ git commit -m 'first commit'

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

$ git push origin master

alors j'obtiens la même erreur ...

erreur: src refspec master ne correspond à aucun.
fatal: l'extrémité distante a raccroché de manière inattendue
erreur: échec de l'envoi de certaines références à 'git@github.com: eltonstewart / band-of-strangers.git'


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

À moins que vous ne généralisiez le message d'erreur, il semble que vous le mettiez littéralement en git@github.com:{username}/{projectname}.gittant que dépôt Git distant. Vous {username}devez renseigner votre nom d'utilisateur GitHub et {projectname}le nom de votre projet.


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

J'ai eu le même problème. J'avais créé par erreur un répertoire dans la machine en minuscules. Une fois le cas modifié, le problème est résolu (mais j'ai perdu mes 1,5 heures :() Vérifiez le nom de votre répertoire et le nom du dépôt distant est le même.


1

Il semble que cette question a déjà un certain nombre de réponses, mais je vais peser avec la mienne puisque je n'en ai vu aucune qui aborde le problème que j'avais.

J'ai également eu cette erreur sur un tout nouveau référentiel github. Il s'avère que l'utilisateur à partir duquel je poussais n'avait pas d'accès push. Pour une raison quelconque, cela entraîne une erreur "ERREUR: référentiel introuvable" au lieu d'une sorte d'erreur d'accès.

Quoi qu'il en soit, j'espère que cela aidera la pauvre âme qui se heurte au même problème.


1

a eu le même problème il y a une minute et l'a ensuite résolu

créer un référentiel dans github appelé 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

cela devrait fonctionner pour résoudre le problème de refspec


Merci, ça marche pour moi .. puis-je savoir quelle est la différence entre "git add" et "git add -A"
Satish Karuturi

aucune différence si vous êtes sur la version 2.x n'a d'importance que si vous êtes sur la table de vérification 1.x pour la future réf: stackoverflow.com/a/26039014/640727
David Chase

0

J'ai mis par erreur un espace après le - donc au lieu de -m j'avais - m Juste quelque chose à chercher.


0

Je pense que dans l'ancienne version de git, vous devriez d'abord valider au moins un fichier, puis vous pouvez à nouveau "pousser l'origine master".


0

super .. c'est le problème avec un répertoire vide seulement rien d'autre. J'ai résolu mon problème en créant un fichier binaire dans chaque répertoire, puis en les ajoutant.


0

L'ajout et le commit initiaux ont fonctionné comme un charme. Je suppose que c'est juste une question de compréhension de la méthodologie de Git pour gérer un projet dans le référentiel.

Après cela, j'ai réussi à transférer mes données immédiatement sans tracas.


0

Je viens de rencontrer ce problème, et cela semblait être dû au fait que je n'ajoutais pas de message de validation personnalisé au-dessus du message de validation par défaut (j'ai pensé, pourquoi écrire "commit initial", quand il dit clairement la même chose dans le texte généré par Git dessous).

Le problème a été résolu lorsque j'ai supprimé le répertoire .git, réinitialisé le répertoire du projet pour Git, ré-ajouté la télécommande GitHub, ajouté tous les fichiers à la nouvelle étape, validé avec un message personnel au-dessus du message généré automatiquement et poussé vers origine / maître.


0

Lorsque vous créez un référentiel sur Github, il ajoute un fichier README.md au référentiel et puisque ce fichier peut ne pas être là dans votre répertoire local, ou peut-être qu'il pourrait avoir un contenu différent, git push échouerait. Pour résoudre le problème que j'ai fait:

git pull origin master
git push origin master

Cette fois, cela a fonctionné puisque j'avais le fichier README.md.


0

Avant le premier commit, essayez d'ajouter un fichier comme readme.txt. Cela "forcera" le dépôt distant à créer le maître de branche au cas où cela n'existerait pas. Cela a fonctionné pour moi.


0

C'est une question très ancienne mais pour toutes les nouvelles personnes qui finiront ici comme moi. Cette solution est uniquement pour

error: src refspec master does not match any.

erreur pour le nouveau dépôt créé

Vous devez ajouter votre

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

Seulement après avoir ajouté un e-mail et un nom, ajoutez des fichiers à git et commit

git add .
git commit -m "message"

Cela fonctionnera comme du charme


0

J'ai aussi cette erreur, je mets un commit pour ne pas pousser un projet vide comme beaucoup de gens le font mais ne fonctionne pas

Le problème était le ssl, y mettre le suivant

git config --system http.sslverify false

Et après cela, tout fonctionne bien :)

git push origin master


0

J'avais le même problème / erreur que git push -u origin masterje faisais à la place, je viens de le faire git push origin masteret cela a fonctionné.


0

allez dans le panneau de configuration -> gérez vos informations d'identification et supprimez les informations d'identification github le cas échéant.


0

Cogner un vieux fil.

Si vous avez créé un référentiel sur Github avec a Readmeou a .gitignore, vous devrez peut-être rebaser le maître local avec le maître distant. Parce que, si vous utilisez un outil de génération de projets, comme create-app, il crée ces fichiers pour vous, et le maître distant doit être synchronisé avec votre local avant de pousser.

Si vous créez un référentiel vide sur Github, vous pouvez simplement pousser.


-1

J'ai eu le même problème, certains utilisateurs y ont répondu. Avant de pousser, vous devez avoir votre premier commit. Maintenant, pour les nouveaux utilisateurs, j'ai créé une série d'étapes simples. Avant cela, vous devez installer git et l'exécuter en ligne de commande:

  • git config user.email "votre email"
  • git config user.name "nom"

Les étapes de création d'un référentiel distant (j'utilise dropbox comme référentiel distant):

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)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.