2011-11-02 19 views
63

Cuando intento empujar un cambio que he comprometí, me sale el siguiente error ...error Git cuando se trata de empujar - pre-recibir gancho declinó

git.exe push -v --progress "origin" iteration1:iteration1 

remote: ********************************************************************* 
To ssh://[email protected]/cit_pplus.git 
! [remote rejected] iteration1 -> iteration1 (pre-receive hook declined) 
error: failed to push some refs to 'ssh://[email protected]/cit_pplus.git' 

lo que está pasando?

+7

¿Qué hay en el preenvasado de mycogit? –

+0

Usted no estaría tratando de enviar archivos de gran tamaño a Github, ¿verdad? –

+0

FYI: hoy todos mis colegas han recibido este mensaje de error, finalmente decidimos reiniciar nuestro servidor stash y se corrigió mágicamente. No tenemos idea de cuál fue el problema en realidad. –

Respuesta

46

Debe preguntar a quienquiera que mantenga el repositorio al [email protected]/cit_pplus.git.

Sus confirmaciones fueron rechazadas por el pre-receive hook de ese repositorio (es un script configurable por el usuario que tiene por objeto analizar las confirmaciones entrantes y decidir si son lo suficientemente buenas para ser aceptadas en el repositorio).

También es una buena idea pedirle a esa persona que actualice el gancho para que se impriman los motivos del rechazo.

Si el mantenedor es usted mismo, parece que tiene un problema con su configuración en el lado del servidor. Por favor, comparta más información a continuación.

+0

En mi caso, BitBucket tenía una validación del contenido del mensaje de confirmación, enfrentándolo con las entradas de JIRA, que estaba fuera de línea en ese momento. –

+1

por lo que cuando se convirtió en línea es fijo? – shareef

+0

¿Y si el repositorio está en heroku ??? –

42

Apuesto a que está intentando un impulso de avance rápido y el gancho lo bloquea. Si ese es el caso, simplemente ejecute git pull --rebase antes de presionar para volver a establecer los cambios locales en la nueva base de código.

5

Esta causado quizá que did't tener el derecho para empujar a cometer alguna rama, como maestro, puede pedir al mantenedor le dio el derecho para empujar

+0

Creo que esto es correcto, pero lo que es interesante es que VS parece estar tratando de empujar a la rama principal, no el nombre de la rama real al control remoto. Por lo tanto, si la rama principal está protegida, parece que está ocurriendo, pero no parece haber ninguna forma de corregir esto en VS y debe cambiar a la línea de cmd. – Mark

4

que tenía este problema cuando se trata de combinar los cambios con un tamaño de archivo mayor que el repositorio remoto permitido (en mi caso fue GitHub)

+2

En mi caso, incluso después de eliminar el archivo, GitHub todavía se quejaba ... pero esta respuesta hizo el truco https://stackoverflow.com/questions/19573031/cant-push-to-github-because-of-large-file-which -i-already-deleted – CodenameDuchess

17

El tamaño del archivo es importante. Hay un límite de ~ 120MB para un solo archivo. En mi caso, .gitignore usando Visual Studio tenía el archivo en la lista, pero el archivo todavía estaba comprometido. Al usar git cli, podemos obtener más información detallada sobre el error.

gancho pre-recepción rechazado fue como resultado del archivo grande. Básicamente validar el empuje.

Para resolverlo, me quita la última confirmación usando:

git reset --soft HEAD~1 

entonces excluidos el archivo desde la confirmación.

Espero que ayude.

+0

Esto me ayudó porque mi problema era un archivo de volcado de SQL no deseado (155 MB en tamaño de archivo) que se estaba presionando (por accidente). –

+0

El límite de tamaño de archivo depende de su proveedor de alojamiento. GitHub tiene un límite en torno a ese tamaño, para otros varía, y el git auto alojado naturalmente no tiene tales límites. – 1615903

1

Recibí este mensaje cuando el servidor de GitLab estaba experimentando algunos cambios. El siguiente día empujar funcionó bien. De todos modos, como otros señalaron, verifique con su mantenedor para estar seguro.

2

En mi caso recibí este mensaje porque la rama estaba marcada como 'Protegida' en GitLab.

0

Lo tengo cuando intento empujar a una instancia de dokku. Resulta que el disco estaba lleno en mi servidor.

Ran: du -f

y el resultado fue:

Filesystem  Size Used Avail Use% Mounted on 
udev   476M  0 476M 0% /dev 
tmpfs   100M 4.4M 95M 5% /run 
/dev/xvda1  7.8G 7.4G 8.9M 100%/
0

En mi caso, tenemos ganchos para los mensajes de confirmación, el script del servidor acepta las confirmaciones si tienen el formato especial para el mensaje del informe "<JIRA ID><Message>".It (hook) declina la confirmación si el ticket Jira respectivo no existe o si hay algunos símbolos especiales en el mensaje de confirmación. Me enfrento a este error cuando agrego /, [,> etc. en un mensaje de confirmación, eliminando esos trabajos bien.

+0

Es poco probable que esta respuesta ayude, ya que el póster original (y cualquier otra persona que visite en el futuro) tendrá un guión diferente configurado como un gancho previo a la recepción. – aronisstav

0

Esto sucede realmente cuando YACC está habilitado en el lado del servidor en BitBucket. YACC permite que los nombres de las cuestiones JIRA se mencionen en el mensaje de confirmación. Por lo tanto, cada vez que cometa algo al menos, mantenga su número JIRA en el mensaje de confirmación y luego, además, puede agregar su propio mensaje.

Cuestiones relacionadas