work update run remote rejected refusing must heads fatal git gitolite

update - git, gitolite error push



git push remote rejected (3)

Busque en Google "Valor de tiempo de compilación vacío dado para usar lib en ganchos / actualización", el primer resultado está en Gitolite Preguntas frecuentes :

Estás pasando por alto la gitolita. Clonó el repositorio utilizando la ruta completa (es decir, incluidos los repositorios / prefijos), ya sea directamente en el servidor, o mediante ssh, pero con una clave que le da acceso al shell.

Solución: igual que para la bala anterior.

Bala anterior:

Utilice un par de llaves diferente para gitolite. Hay una discusión un poco más larga en la página de configuración. También vea por qué la omisión causa un problema y ambos documentos en ssh para el fondo.

Acabo de instalar gitolite pero cuando presiono en el repositorio gitolite-admin me aparece un error:

git push Counting objects: 9, done. Delta compression using up to 2 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (7/7), 605 bytes, done. Total 7 (delta 1), reused 0 (delta 0) remote: Empty compile time value given to use lib at hooks/update line 6 remote: Use of uninitialized value in require at hooks/update line 7. remote: Can''t locate Gitolite/Hooks/Update.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at hooks/update line 7. remote: BEGIN failed--compilation aborted at hooks/update line 7. remote: error: hook declined to update refs/heads/master To ssh://[email protected]/home/admin/repositories/gitolite-admin.git ! [remote rejected] master -> master (hook declined) error: failed to push some refs to ''ssh://[email protected]/home/admin/repositories/gitolite-admin.git''

No sé lo que debo hacer.

¿me puedes ayudar?

Gracias


Es un muy buen comentario de #roberthernandez, pero quiero agregar algo de énfasis a esto. Mi gran problema con la instalación de gitolite (y push''ing, por supuesto) fue con la comprobación, que el directorio ''~ / bin'' está en la variable de entorno PATH. Necesitamos usar export PATH=$PATH:~/bin para establecer esta configuración. Sin esta opción, creo que gitolite no puede ejecutar sus procesos y tiene problemas con PUSHing. Además, después de eso, puede usar la gilotile setup ... lugar de la gilotile setup ... bin/gitolite setup ...


Antes de comenzar: gitbox es la máquina remota con git y gitolite instalados. El usuario git es el usuario con el que se ejecuta gitolite en el gitbox.

Puede superar este error (1) generando un nuevo par de claves, (2) registrando la clave pública en el gitbox, y (3) asegurándose de que cuando se conecte al gitbox, siempre se conecte como usuario de git utilizando su Nueva clave privada.

Para el ninja, eso es probablemente suficiente. Para el resto, aquí hay más detalles:

Paso 1) Generar un nuevo par de llaves

La mayoría de los IDE tienen la capacidad de crear un nuevo par de llaves público / privado. Alternativamente, si tiene acceso a una máquina Linux, puede generar su propio uso de:

ssh-keygen -t rsa -f john_git_rsa

La salida será un conjunto de claves privadas ( john_git_rsa ) y públicas ( john_git_rsa.pub ) (también conocida como el par de llaves). Tendrá que copiar la clave pública en el gitbox en el siguiente paso.

Paso 2) Registrar nueva clave pública en gitbox

Puede averiguar cómo usar git para administrar gitolite-admin con una búsqueda rápida de Google. Brevemente, los pasos son: (1) clonar el repositorio gitolite-admin; (2) agregue la nueva clave pública al directorio gitolite-admin / keydir /; y (3) reenviar los cambios al repositorio de gitolite-admin. La pulsación activa el gitbox para registrar cualquier clave nueva en el directorio / carpeta con la lista de usuarios autorizados del usuario de gitbox.

Tu gitbox ahora está listo para aceptar nuevas conexiones de aquellos que se autentiquen como usuarios de git , usando la clave privada john_git_rsa .

Paso 3) Asegúrate de que tus conexiones a gitbox usen el usuario git y la nueva clave privada

Si se está conectando a gitbox utilizando el terminal, edite / cree el archivo ~ / .ssh / config para incluir un alias que preconfigure su conexión a gitbox. El alias se ve así:

Host gitbox User git Hostname yourgitbox.com Port 22 IdentityFile ~/.ssh/john_git_rsa

Ahora, ejecutar comandos como> git clone gitbox: reponame.git, o> git push gitbox: reponame.git garantiza que estés usando el usuario de git y la clave privada apropiada. Sin este alias, tendrías que hacer algo como> git clone ssh: //[email protected]: 22 / reponame.git y descubrir el interruptor ssh para especificar la clave privada a usar, no es bonito. (Nota: si se conecta sin usar este alias, se usará su clave ssh predeterminada y recibirá errores de permiso).

O si usa un IDE (NetBeans, Eclipse, etc.):

Debe encontrar la configuración SSH de su IDE y configurarla para que use la nueva clave privada que creó (john_git_rsa) en lugar de las claves predeterminadas que generó durante su instalación. También debe asegurarse de que la URI de su repositorio de inserción esté configurada en algo como:

ssh://[email protected]:22/reponame.git

que el nombre de usuario está establecido en git , y el campo de contraseña está vacío. Esto asegura que cuando se conecte a gitbox su IDE le proporcionará la clave privada que acaba de configurar y el usuario de git.

Ahora tus empujes deberían funcionar.