223 votes

Erreur de git : src spécification maître ne correspond à aucun

J'ai besoin de créer un repo nommé carboncake.

J'ai essayé ceci:

Cloné le gitosis-admin référentiel de ma machine locale

$ git clone gitosis@myserver.net:repositories/gitosis-admin.git
$ cd gitosis-admin
$ vim gitosis.conf

Ajout de la [repo carboncake] et [group carboncake] section à la fin du fichier

[gitosis]

[group team]
writable = sweepshots
members = git_id_rsa

[group gitosis-admin]
writable = gitosis-admin
members = git_id_rsa

[repo carboncake]
description = A brand new app by Mithun.
owner = Mithun P

[group carboncake]
writable = myappname
members = mithun @core

Puis copié le pub fichier de clé généré par Putty (je suis en utilisant Git basg pour Windows):

$cp /some/where/mithun.pub keydir/mithun.pub

Exécuté les commandes suivantes:

$ git add gitosis.conf keydir/mithun.pub
$ git commit -m "Added 'carboncake' repository and 'mithun' user."

$ git pull --rebase
$ git push

Mais il ne crée pas d'carboncake.git dans Mon Serveur.

J'ai donc suivi ce:

Exécuté les commandes suivantes sur le serveur:

$ su gitosis 
$ git init --bare /srv/gitosis/repositories/carboncake.git

Voici mon problème:

J'ai essayé la commande/cloner le nouveau référentiel de ma machine locale

$ mkdir carboncake
$ cd carboncake
$ git init 
$ touch a_text_file.txt 
$ git add a_text_file.txt 
$ git remote add origin gitosis@myserver.net:repositories/carboncake.git
$ git push origin master

Qui a renvoyé l'erreur:

error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'gitosis@myserver.net:repositories/carboncake.git'

Quand j'ai essayé git push origin HEAD:master il a renvoyé l'erreur:

error: src refspec HEAD does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'gitosis@myserver.net:repositories/carboncake.git'

Quand j'ai essayé git push origin master:refs/heads/master il a renvoyé l'erreur:

error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'gitosis@myserver.net:repositories/carboncake.git'

git show-ref sur la machine locale n'affiche rien du tout

Aussi /srv/gitosis/repositories/carboncake.git/refs/heads/ répertoire sur le serveur est vide.

Comment puis-je résoudre ce problème?

534voto

Mark Longair Points 93104

Vous avez créé un nouveau référentiel et ajoute certains fichiers de l’index, mais vous n’avez pas encore créé votre premier commit. Après que vous l’avez fait :

... faire :

... et ces erreurs devraient disparaître.

19voto

Mauvis Ledford Points 12424

La rapide réponse possible: Lors de la première de cloner avec succès un empty git repository, l'origine n'a pas de branche master. Donc, la première fois, vous avez un engageons à vous pousser à vous faire:

git push origin master

Ce qui permettra de créer cette nouvelle branche master pour vous. Peu de choses de ce genre sont très confus avec git.

Si cela ne corrige pas votre problème, alors c'est probablement un gitolite liés à la question:

Votre fichier conf semble étrange. Il devrait y avoir été un exemple de fichier de conf qui est venu avec votre gitolite. Le mien ressemble à ça:

repo    phonegap                                                                                                                                                                           
    RW+     =   myusername otherusername                                                                                                                                               

repo    gitolite-admin                                                                                                                                                                         
    RW+     =   myusername                                                                                                                                                               

Assurez-vous de la configuration de votre fichier conf correctement.

Gitolite remplace le gitolite compte de l'utilisateur avec une modification de la coque qui n'accepte pas les bornes interactives des séances. Vous pouvez voir si gitolite est de travailler en essayant de ssh dans votre zone à l'aide de la gitolite compte d'utilisateur. Si elle sait qui vous êtes, il va dire quelque chose comme "Salut XYZ, vous avez accès à des référentiels suivants: X, Y, Z", puis fermer la connexion. Si elle ne vous connaît pas, il suffit de fermer la connexion.

Enfin, après votre première commande git push a échoué sur votre machine locale, vous devez ne jamais recourir à la création de l'opération manuellement sur le serveur. Nous avons besoin de savoir pourquoi vos git push échoué à l'origine. Vous pouvez vous entraîner vous-même et gitolite plus de confusion lorsque vous n'utilisez pas de gitolite exclusivement une fois que vous avez configuré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X