Fatal: No es posible avanzar rápidamente, anulando

6 minutos de lectura

avatar de usuario
jesse leite

¿Por qué Git ya no me permite fusionar con avance rápido? Si trato de forzarlo usando --ff-only, recibo el mensaje “fatal: no es posible avanzar rápidamente, cancelando”. Me doy cuenta de que hay enormes ventajas para merge --no-ffpero estoy desconcertado por qué no puedo --ff-only ¿ahora?

avatar de usuario
cripdick

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

Si su rama ascendente no está configurada, intente git pull origin <branch> --rebase (crédito a @Rick en los comentarios)

Para configurar esta opción globalmente, utilice git config --global pull.rebase true (crédito a @Artur Mustafin abajo)

  • Esto funcionó muy bien para mí, excepto que no tenía un conjunto ascendente en mi sucursal, así que tuve que usar git pull origin <branch> --rebase y parecía hacer el truco. ¡Gracias!

    – Rick

    4 mayo 2021 a las 23:28

  • ¿Ocurre esta condición cuando se modifica una confirmación anterior?

    – FP Gratis

    28 de julio de 2021 a las 21:11

  • Si obtiene conflictos de fusión en medio de esto, corrija sus archivos de fusión y luego ejecute git rebase --continue.

    – Coreo

    6 sep 2021 a las 7:33

  • git config –global pull.rebase verdadero

    -Artur Mustafin

    3 de noviembre de 2021 a las 16:44

  • me funciono hoy 😉

    – BZKN

    7 abr a las 12:31

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 completamente la rama de destino).

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

  • ¿Cómo es esto posible? Esto no es correcto. Debe ser alguna configuración que ha cambiado.

    – matemáticas

    19 oct 2020 a las 13:25

  • @mathtick este mensaje proviene de su configuración de extracción establecida en ff del comando git config pull.ff only

    – Al Duncanson

    17 de noviembre de 2020 a las 15:02

  • “el avance rápido requiere que su rama contenga completamente la rama de destino” parece al revés. Debería ser “el avance rápido requiere que su rama esté completamente contenida dentro de la rama de destino”

    – huyz

    21 de febrero de 2021 a las 7:39

  • @huyz no; has invertido lo que significa “tu” aquí.

    – Ámbar

    21 de febrero de 2021 a las 20:09

  • git config –global pull.rebase verdadero

    -Artur Mustafin

    3 de noviembre de 2021 a las 16:44

git pull --no-ff -> hacer que el avance rápido esté apagado por –no-ff

  • 2022 y esto funcionó para mí.

    – Ruevaughn

    14 de enero a las 14:19

  • ¡Funcionó muy bien!

    – V_J

    17 de febrero a las 14:02

  • Es sugerido por git mismo.

    – Dheeraj kumar Rao

    21 de febrero a las 7:14

avatar de usuario
Aman Bhardwaj

  • Si
git pull

no funciona y si desea fusionar los cambios actuales y los cambios que provendrían de la extracción de la rama desde el origen, haga esto:

git merge origin/BRANCH_NAME
  • Después de eso, resuelva los conflictos de fusión, si los hay, y listo por hoy.

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

En el caso de un equipo grande, terminará reorganizando y resolviendo conflictos muchas veces y para todos y cada uno de los compromisos provenientes del pull.

Le sugiero que elimine ff = solo línea del archivo de configuración local de git.

$ cd a-my-project-root-dir

$ nano .git/config

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

  • Solo podría suceder si ff = only está habilitado, pero esa no es la causa. Si ocurre el error, es una señal de que algo no estándar le sucedió al maestro, consulte stackoverflow.com/a/28973624/1335793 para conocer una buena manera de determinar qué sucedió. Por ejemplo, tuve este error al tratar de extraer del maestro, y lo que realmente hice fue confirmar algo localmente en el maestro que no existía en el control remoto. En un equipo nunca debemos comprometernos a dominar o presionar para dominar; si hubiera deshabilitado ff, entonces no me habría mostrado mi error.

    – Davos

    10 de mayo de 2021 a las 7:16


  • La decisión de utilizar ff = only o no puede ser bastante obstinado, personalmente lo prefiero pero depende de la decisión del equipo.

    – Davos

    10 de mayo de 2021 a las 7:18

  • @Davos Estoy un poco de acuerdo contigo. Pero, en general, la mayoría del equipo de desarrollo no usa la política de reorganización debido a limitaciones de tiempo. Pero estoy de acuerdo contigo. Debe ser una decisión de equipo.

    – Pratik Soni

    21 de mayo de 2021 a las 12:17

  • GRANDE TE AMO.

    – Daniel

    4 abr a las 11:56

Si obtiene esto al hacer un git pull origin master en su sucursal local, abra .gitconfig en el Bloc de notas (generalmente oculto en C:\Users\Myname) y agregue estas dos líneas

[pull]
    ff = no

Guarda la configuración y prueba git pull origin master otra vez

  • Solo podría suceder si ff = only está habilitado, pero esa no es la causa. Si ocurre el error, es una señal de que algo no estándar le sucedió al maestro, consulte stackoverflow.com/a/28973624/1335793 para conocer una buena manera de determinar qué sucedió. Por ejemplo, tuve este error al tratar de extraer del maestro, y lo que realmente hice fue confirmar algo localmente en el maestro que no existía en el control remoto. En un equipo nunca debemos comprometernos a dominar o presionar para dominar; si hubiera deshabilitado ff, entonces no me habría mostrado mi error.

    – Davos

    10 de mayo de 2021 a las 7:16


  • La decisión de utilizar ff = only o no puede ser bastante obstinado, personalmente lo prefiero pero depende de la decisión del equipo.

    – Davos

    10 de mayo de 2021 a las 7:18

  • @Davos Estoy un poco de acuerdo contigo. Pero, en general, la mayoría del equipo de desarrollo no usa la política de reorganización debido a limitaciones de tiempo. Pero estoy de acuerdo contigo. Debe ser una decisión de equipo.

    – Pratik Soni

    21 de mayo de 2021 a las 12:17

  • GRANDE TE AMO.

    – Daniel

    4 abr a las 11:56

avatar de usuario
Fez Nguyen

Si tiene un compromiso, intente deshacerlo y vuelva a tirar.

¿Ha sido útil esta solución?