2009-08-19 8 views
2

J'ai installé la gitose, mais j'ai une chose étrange quand je travaille avec repos. Dans config i ontgitose et problème de clone git

[gitosis] 

[group gitosis-admin] 
writable = gitosis-admin 
members = [email protected] [email protected] 

[group prj1] 
writable = prj1 
members = [email protected] 

et dans/home/git/dépôts i ont créé prj1.git répertoire avec git vide.

je peux travailler avec gitosis-admin du serveur et un ordinateur portable sans problèmes, mais quand je suis en train de clone git de prj1 sur mon ordinateur portable, je vois

$ git clone [email protected]:prj1.git 
Initialized empty Git repository in /Users/alec/temp/prj1/.git/ 
fatal: no matching remote head 

ok, permet de pousser prj1 d'ordinateur portable serveur:

$ git push origin master:refs/heads/master 
ERROR:gitosis.serve.main:Repository read access denied 
fatal: The remote end hung up unexpectedly 

Quel est le problème?

Répondre

5

Est-ce que ce qui suit, fait sur votre ordinateur portable, pourrait résoudre ce problème?
Au lieu d'un clone git:

mkdir prj1 
    cd prj1 
    git init 
    touch README 
    git add . 
    git commit -m "Added blank readme" 
    git remote add origin [email protected]:prj1.git 
    git push origin master 

ebneter ajoute dans le commentaire:

You might mention that the reason this works is that you can't clone an empty repo.
(As my users regularly discover...

Et qui rappelle la question OP:

... and in /home/git/repositories I have created directory prj1.git with empty git repo

qui n'est pas idéal là.
Cette SO question mentionne la question du clonage d'un repo vide:

In other words, don't attempt to clone the empty repo, but rather after creating it, push to it a simple repo containing one innocuous file. Then it is no longer empty and can be cloned.


Depuis lors, Chris Johnsen commentaires:

Any Git later than 1.6.2

(donc en fait depuis Mars 2009)

can “clone” empty repositories.
(scare quotes because it really just amounts normal initialization plus setting up a remote, and creating a tracking configuration for the presumed, eventual master branch).

+1

le même résultat $ git pousser origine maître ERREUR:. Gitosis.serve.main: lire Repository vu refuser l'accès fatale: Le extrémité distante raccroché de façon inattendue –

+0

huh ... j'ai enlevé à distance et ajouté puis de retour - il fonctionne maintenant :) Merci beaucoup! –

+0

@Tim: merci pour l'édition. J'ai raté celui-là. – VonC

5

J'ai eu le même problème qui persistait ev fr après avoir suivi les étapes de la réponse 1.

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update 

l'a résolu pour moi. Apparemment, les anciennes versions de setuptools peuvent rendre le hook post-update non-exécutable. Référez this page.

1

J'ai couru dans le même message, après que je veux pousser à un nouveau dépôt:

git push -u origin master 
ERROR:gitosis.serve.main:Repository read access denied 
fatal: The remote end hung up unexpectedly 

La raison était que j'avais 2 mêmes touches de pub-ssh (même clé, nom différent) en gitosis- admin/keydir.

Après avoir supprimé l'une, je peux pousser à de nouveaux dépôts

+0

Assurez-vous de retirer l'un d'entre eux de ~ gitosis/.ssh/authorized_keys – Dror

0

eu le même problème, la raison était que je gitosis.conf édité sur mon local et ne pas commettre au serveur.

0

Dans mon cas, le client ssh a choisi la mauvaise clé privée de ~/.ssh.

[gitosis] loglevel = DEBUG a permis de voir que le mauvais utilisateur était connecté

Questions connexes