Primer clon de GIT y primer problema de GIT push

Tengo dos problemas Tengo Ubuntu 10.10 y he instalado el server git con la herramienta gitolite. Todo funcionó bastante bien. El command gl-setup de gitolite creó 2 repositorys: gitolite-admin y testing.

1) PREGUNTA 1

Mi usuario administrador pnetworkingeterminado de gitolite se llama "git" y ya se ha creado.

Primero, tuve que clonar el repository gitolite-admin, hacer algunos cambios digamos conf / gitolite.conf para agregar un nuevo repository y un nuevo usuario (agregué el usuario raíz y creé una key privada / pública antes y también agregué la key pública para la carpeta keydir), luego tuve que agregar / confirmar y presionar los cambios hacia atrás.3

Información: Tengo mi file ~ git / .ssh / authorized_keys bien, comenzando con command = y teniendo solo un valor – la key pública del usuario git que creé primero.

NO FUNCIONO:

[email protected]:~/$ git clone [email protected]<<SERVER_IP>>:gitolite-admin.git Initialized empty Git repository in /home/git/ga/gitolite-admin/.git/ [email protected]<<SERVER_IP>>'s password: fatal: 'gitolite-admin.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

TRABAJÓ:

 touch ~/.ssh/config 

con contenido:

 host gitolite user git hostname <<SERVER_IP>> identityfile ~/.ssh/git.pub [email protected]:~/$ git clone gitolite:gitolite-admin Initialized empty Git repository in /home/git/ga/gitolite-admin/.git/ Enter passphrase for key '/home/git/.ssh/git.pub': Enter passphrase for key '/home/git/.ssh/git.pub': Enter passphrase for key '/home/git/.ssh/git.pub': [email protected]'s password: remote: Counting objects: 23, done. remote: Compressing objects: 100% (18/18), done. remote: Total 23 (delta 4), reused 0 (delta 0) Receiving objects: 100% (23/23), done. Resolving deltas: 100% (4/4), done. 

¿Por qué no trabajé en absoluto la primera variante? Todos los tutoriales dicen que debería funcionar sin ningún problema. Tuve que usar la segunda variante para crear esa configuration de host en el file ~ / .ssh / config. Esto es un poco frustrante La ruta de repos es / home / git / repositories y el ssh es el puerto 22 pnetworkingeterminado.

2) PREGUNTA 2

Usando el usuario root en el mismo server, creé una carpeta vacía en digamos /var/www/example.com/www. Ejecuté git init, luego agregué un file (.gitignore), ejecuté git add -A y git commit -m "…".

Luego creé la ruta remota para el origen:

 git remote add origin [email protected]<<SERVER_IP>>:myrepo.git 

Ejecuté el maestro de origen de git push y esto es lo que obtuve:

 fatal: 'myrepo.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly 

Probé varias cosas para cambiar, como poner todo el path al repository (incluso yo no lo vi en ninguna parte, así que no es correcto) y obtuve:

 Counting objects: 3, done. Writing objects: 100% (3/3), 243 bytes, done. Total 3 (delta 0), reused 0 (delta 0) remote: ENV GL_RC not set remote: BEGIN failed--comstacktion aborted at hooks/update line 20. remote: error: hook declined to update refs/heads/master To [email protected]<<SERVER_IP>>:/home/git/repositories/myrepo.git ! [remote rejected] master -> master (hook declined) error: failed to push some refs to '[email protected]<<SERVER_IP>>:/home/git/repositories/myrepo.git' 

¿Qué estoy haciendo mal? Esto se está volviendo frustrante ya que para esa tarea básica experimento estas dificultades inusuales. Tengo una gran experiencia con SVN, estas son las primeras jugadas con GIT.

¡Gracias de antemano por su ayuda!

Nota para 1 /: Eso podría haber funcionado si el id_rsa.pub identityfile era un nombre pnetworkingeterminado ( id_rsa.pub e id_rsa ). Como no era el caso, un file de config era obligatorio.

Nota para 2 / has creado un repository de git, pero ¿dejaste que gitolite lo supiera?
Debe declarar el nuevo repository en el file de configuration del repo gitolite-admin .

Si está presionando a través de ssh como root , eso significa que el uso tiene sus propias ~/.ssh/id_rsa(.pub) , y esas keys se registraron para Gitolite.

Nota para las routes de repository: nunca utilice la ruta local completa de un repository para la dirección push / pull: eso evitaría completamente Gitolite.


Un gazillon comenta después, parece que:

  • todas las direcciones remotas deben comenzar con [email protected]: arepo.git : quiere que su usuario ejecute los commands de git en somehostname como ' git ' (la count a cargo de git y gitolite).
    Eso significa que la key pública de ' myuser ' debe estar registrada en el somehostname:~git/.ssh/authorized_keys del somehostname:~git/.ssh/authorized_keys

  • Cada vez que una connection ssh no funciona como usted lo desea, puede comenzar buscando esas sugerencias de debugging ssh .
    Por ejemplo: ssh -vvv git:somehostname puede recorrer un largo path para ilustrar lo que está sucediendo

  • si desea evitar un file de config , entonces necesita usar la convención de nomenclatura estándar para esas keys públicas / privadas ( ~myuser/.ssh/id_rsa , y ~myuser/.ssh/id_rsa.pub )