git · Git
El mensaje
Updates were rejected because the remote contains work that you do not have locally.
Qué significa
Esta es la explicación detrás de un push rechazado: el remoto contiene trabajo que tu clon no tiene, y hacer push ahora lo eliminaría. Aparece cuando varias personas comparten una rama, o cuando editaste y confirmaste un archivo desde la web y nunca lo bajaste. Haz primero git pull --rebase origin main y luego push, y pasa sin más. Añadir --force a pesar de este aviso hace justo lo que el aviso pretende evitar: los commits de la otra persona desaparecen del servidor y, si nadie hizo fetch después de su push, no quedan en ninguna parte.
El arreglo
git pull --rebase origin main- Lo imprime
- git
- Git
- 29
Casi todos los errores de git son una negativa que significa "hacer eso desde este estado perdería algo"; fatal: indica que git se detuvo sin cambiar nada, y las líneas hint: bajo la primera suelen traer el remedio real.
Cómo leer un mensaje de error
- Lee desde la primera línea. Cuanto más abajo, más son las tripas de la herramienta; la causa suele estar arriba.
- Si hay un archivo y un número de línea, empieza ahí: no el marco superior de la pila, sino la línea más alta que nombre un archivo tuyo.
- Busca el mensaje literal, pero quita antes tus rutas y nombres de variables: eso es lo que impide que la búsqueda coincida.
- La misma condición se redacta distinto según la versión. Si los resultados no cuadran, añade el número de versión.
- Antes de pegar un arreglo, comprueba qué descarta. Algunos no se pueden deshacer.
Preguntas frecuentes
Q. ¿Qué significa «Updates were rejected because the remote contains work that you do not have locally.»?
Esta es la explicación detrás de un push rechazado: el remoto contiene trabajo que tu clon no tiene, y hacer push ahora lo eliminaría. Aparece cuando varias personas comparten una rama, o cuando editaste y confirmaste un archivo desde la web y nunca lo bajaste. Haz primero git pull --rebase origin main y luego push, y pasa sin más. Añadir --force a pesar de este aviso hace justo lo que el aviso pretende evitar: los commits de la otra persona desaparecen del servidor y, si nadie hizo fetch después de su push, no quedan en ninguna parte.
Q. ¿Cómo se arregla?
git pull --rebase origin main — antes de ejecutarlo, mira arriba qué descarta este comando.
Q. ¿Qué herramienta lo imprime?
git. Está en Git y el mensaje tiene 14 palabras.