Estoy usando Git para administrar mis dos computadoras y mi desarrollo. Estoy tratando de cometer cambios en GitHub y obtengo el error.
No se pudieron presionar algunas referencias
<repo>
. Para evitar que pierdas el historial, se rechazaron las actualizaciones que no son de avance rápido. Combine los cambios remotos antes de presionar nuevamente.
¿Qué podría estar causando esto y cómo puedo solucionarlo?
EDITAR:
Tirar del repositorio devuelve lo siguiente:
* branch master-> master (no-fast-forward) Ya actualizado
Empujar todavía me da el error antes mencionado.
git
version-control
Moshe
fuente
fuente
Respuestas:
GitHub tiene una buena sección llamada " Manejo de errores " no de avance rápido " "
Git no puede realizar cambios en el control remoto como una combinación de avance rápido, que ilustra una Referencia visual de Git como:
Este no es exactamente su caso, pero ayuda a ver qué es el "avance rápido" (donde la
HEAD
rama simplemente se mueve a una nueva confirmación más reciente).El "
branch master->master (non-fast-forward) Already-up-to-date
" es generalmente para sucursales locales que no rastrean su contraparte remota.Vea, por ejemplo, esta pregunta SO " git pull dice que está actualizado pero git push rechaza el avance no rápido ".
O las dos ramas están conectadas, pero en desacuerdo con su respectiva historia:
vea " Historia interminable de GIT: ¿qué estoy haciendo mal aquí? "
fuente
Significa que ha habido otras confirmaciones enviadas al repositorio remoto que difieren de sus confirmaciones. Por lo general, puede resolver esto con un
antes de empujar
Finalmente, "avance rápido" significa que los commits se pueden aplicar directamente sobre el árbol de trabajo sin requerir una fusión.
fuente
Una actualización de avance rápido es donde los únicos cambios de un lado son después de la confirmación más reciente del otro lado, por lo que no es necesario fusionarlos. Esto significa que debe fusionar sus cambios antes de poder impulsar.
fuente
es posible que desee utilizar la fuerza con la operación de empuje en este caso
git push origin master --force
fuente
Nunca hagas una
git -f
tareapush
ya que puede tener consecuencias desastrosas posteriores.Solo necesita hacer una
git pull
de su sucursal local.Ex:
y luego hacer un
git push
fuente
Necesita fusionar y resolver el
conflicts locally
antes de enviar sus cambios a repositorio / tenedor remoto.1) tirar (buscar y fusionar)
2) Empujar los cambios
Aún así, tiene una opción rápida
push
de usar la--force
opción por la fuerza , pero debe evitarse ya que puede provocar la pérdida de cambios o afectar gravemente a otros contribuyentes.fuente