J'ai besoin de créer un dépôt nommé carboncake
.
j'ai essayé ceci:
Cloné le référentiel gitosis-admin sur ma machine locale
$ git clone [email protected]:repositories/gitosis-admin.git
$ cd gitosis-admin
$ vim gitosis.conf
Ajout des sections [repo carboncake]
et [group carboncake]
à 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 fichier de clé de pub généré par PuTTY (j'utilise 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 cela ne crée pas de carboncake.git dans My Server.
Alors j'ai suivi ceci:
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é de commander/cloner le nouveau référentiel à partir 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 [email protected]:repositories/carboncake.git
$ git Push Origin master
Ce 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 '[email protected]: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 '[email protected]: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 '[email protected]:repositories/carboncake.git'
git show-ref
sur la machine locale n'affiche rien
De plus, le répertoire /srv/gitosis/repositories/carboncake.git/refs/heads/
sur le serveur est vide.
Comment puis-je réparer cela?
Vous avez créé un nouveau référentiel et ajouté des fichiers à l'index, mais vous n'avez pas encore créé votre premier commit. Après avoir fini:
git add a_text_file.txt
... faire:
git commit -m "Initial commit."
... et ces erreurs devraient disparaître.
La réponse rapide possible: lorsque vous clonez pour la première fois avec succès un référentiel git vide, l’origine n’a pas de branche maître. Donc, la première fois que vous avez un engagement à Push, vous devez faire:
git Push Origin master
Ce qui va créer cette nouvelle branche maîtresse pour vous. Les petites choses comme celle-ci sont très déroutantes avec les git.
Si cela ne résout pas votre problème, il s'agit probablement d'un problème lié à la gitolite:
Votre fichier de configuration a l’air étrange. Il aurait dû y avoir un exemple de fichier de configuration fourni avec votre gitolite. Le mien ressemble à ceci:
repo phonegap
RW+ = myusername otherusername
repo gitolite-admin
RW+ = myusername
Assurez-vous que vous définissez votre fichier de configuration correctement.
En fait, Gitolite remplace le compte de l'utilisateur de gitolite par un shell modifié qui n'accepte pas les sessions de terminal interactives. Vous pouvez voir si gitolite fonctionne en essayant de ssh dans votre boîte en utilisant le compte utilisateur gitolite. S'il sait qui vous êtes, le message "Bonjour XYZ, vous avez accès aux référentiels suivants: X, Y, Z", puis ferme la connexion. S'il ne vous connaît pas, il ne fera que fermer la connexion.
Enfin, après l'échec de votre premier git Push sur votre machine locale, vous ne devriez jamais recourir à la création manuelle du référentiel sur le serveur. Nous devons savoir pourquoi votre git Push a initialement échoué. Vous pouvez causer plus de confusion à vous-même et à gitolite si vous n’utilisez pas exclusivement gitolite une fois que vous l’avez configuré.