Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿Git push dice “pre-receive hook declined”? Conserva el motivo remoto antes de reescribir commits

El resumen solo demuestra que el remoto rechazó una actualización antes de cambiar referencias; no identifica la regla. Guarda las líneas remotas, el mapa de refs y el dueño de la política, y corrige solo el límite probado.

Ilustración editorial original: ¿Git push dice “pre-receive hook declined”? Conserva el motivo remoto antes de reescribir commits
Ilustración editorial original: “pre-receive hook declined” ubica una decisión remota, pero no explica su causa. La evidencia útil suele estar en las líneas remote anteriores, la actualización exacta de refs y la política del host. Watch at Ease

“pre-receive hook declined” ubica una decisión remota, pero no explica su causa. La evidencia útil suele estar en las líneas remote anteriores, la actualización exacta de refs y la política del host.

Antes de resetear, forzar, borrar archivos o pedir que se debilite una regla, crea un registro redactado y dirige la reparación al contribuidor, mantenedor o administrador correcto.

1. Congela el rechazo exacto

Guarda toda la salida desde la primera línea remote: hasta cada ref rechazada. Registra URL saneada, transporte, origen local, destino remoto, cuenta efectiva, hora y versión de Git.

No empieces con reset, rebase, force push o borrado: podrías destruir la carga que identifica el commit, ruta, firma, objeto o ref que activó el rechazo.

2. Prueba dónde se tomó la decisión

Git define pre-receive como un hook del repositorio receptor que lee OID viejo, OID nuevo y nombre completo de ref antes de actualizar. Un estado no cero rechaza la recepción, así que omitir un hook local no sirve.

Separa pre-receive, el rechazo update por ref y un error post-receive. Conserva el motivo entre paréntesis y todos los mensajes remote.

3. Enruta la primera línea remote específica

Si el host nombra rama protegida, permiso, mensaje, email de autor, firma, archivo, tamaño, borrado de tag, secreto u objeto LFS ausente, verifica esa regla y su alcance. No sustituyas una causa popular.

Sin mensaje útil, el mantenedor revisa push rules y refs protegidas; el administrador revisa código, logs y timeout del hook. El contribuidor conserva la ref y sus OID anterior/nuevo.

4. Prueba la carga infractora antes de editar

Mapea cada origen y destino y compara el rango propuesto con la ref remota. Inspecciona metadata, rutas, tamaños, firmas y punteros LFS solo según la regla indicada; en push multi-ref, prueba cada ref.

Registra el objeto o control fallido y su dueño. Enmendar un commit, cambiar un permiso y reparar un hook son límites de responsabilidad distintos.

5. Repara lo mínimo y demuestra cierre

Cambia solo el límite probado y repite la misma actualización de ref. No debilites una regla compartida ni fuerces el push salvo que la política lo permita y reescribir historial sea intencional.

Comprueba que la ref remota apunta al OID esperado y que todas las refs fueron aceptadas. Si queda el mensaje genérico, vuelve a la primera línea remote no explicada o al log del servidor.

Ilustración editorial original: ¿Git push dice “pre-receive hook declined”? Conserva el motivo remoto antes de reescribir commits
Ilustración editorial original: Antes de resetear, forzar, borrar archivos o pedir que se debilite una regla, crea un registro redactado y dirige la reparación al contribuidor, mantenedor o administrador correcto. Watch at Ease