Fatal: no es posible adelantar, abortar

89

¿Por qué Git ya no me permite fusionar más rápido? Si trato de forzarlo usando --ff-only, aparece el mensaje "fatal: no es posible avanzar rápido, abortar". Me doy cuenta de que tiene enormes ventajas merge --no-ff, pero me desconcierta por qué no puedo --ff-onlyahora.

Jesse Leite
fuente

Respuestas:

94

Su rama ya no se basa directamente en la rama en la que está tratando de fusionarla, por ejemplo, se agregó otra confirmación a la rama de destino que no está en su rama. Por lo tanto, no puede avanzar rápidamente (porque el avance rápido requiere que su rama contenga por completo la rama de destino).

Puede volver a establecer la base de su rama en la parte superior de la rama de destino ( git rebase <destination branch>) para volver a trabajar las confirmaciones de modo que avancen rápidamente hacia ella, o puede hacer una fusión regular.

Ámbar
fuente
¿Cómo es esto posible? Esto no es correcto. Debe ser algún escenario que haya cambiado.
mathtick
3
@mathtick este mensaje proviene de su configuración de extracción configurada ffdesde el comandogit config pull.ff only
Al Duncanson
82

git pull --rebase. A diferencia de la otra solución, no necesita saber el nombre de su sucursal de destino.

Crypdick
fuente
11

El motivo de este error es el "Conflicto de fusión". Cuando se han realizado múltiples ediciones / actualizaciones en su archivo de GitHub sin extraer los cambios en cada etapa de una actualización, se produce un conflicto de fusión.

Caso normal: -

$ git pull

Nota: obtendrá un error. Fatal: no es posible avanzar rápido, abortar

Prueba este: -

$ git pull origin master --rebase

Nota: - Ahora, después de este comando, obtendrá problemas de conflicto de fusión. Así que ahora puede ir a su archivo y resolver el conflicto manualmente. Fusionar error de conflicto

Piyush Agnihotri
fuente
1

Esto se debe a que ha habilitado la opción de solo avance rápido. La cosa aquí es que su extracción de la rama creará una confirmación de fusión en su git local y la opción de avance rápido no permite crear una confirmación de fusión en el momento de la extracción.

En el caso de un gran equipo, terminarás reorganizando y resolviendo conflictos muchas veces y para todos y cada uno de los compromisos provenientes del tirón.

Le sugiero que elimine ff = only line del archivo de configuración local de git.

$ cd a mi-proyecto-directorio-raíz

$ nano .git / config

[pull]
        ff = only // remove this line
        rebase = false

Pratik Soni
fuente