Desactivar fusión rápida para fusión regular, pero no para extracción

Quiero que git siempre haga fusiones ( --no-ff ) cuando uso git merge , pero mantengo el comportamiento pnetworkingeterminado (- --ff ) para git pull . ¿Es esto posible (con configs)?

Las dos configuraciones que pueden ayudar son:

 merge.ff 

(Desde la página man de git merge ): cuando se establece en false , esta variable le dice a Git que cree una confirmación de fusión adicional en ese caso (equivalente a dar la --no-ff desde la línea de command).

 pull.ff 

(desde la página man de git config )

Establecer pull.ff en true mantendría el comportamiento pnetworkingeterminado donde Git no crea un compromiso de fusión adicional cuando se fusiona una confirmación que es un descendiente de la confirmación actual.

Para ser probado: ¿ pull.ff tiene prioridad sobre merge.ff ?

 git config pull.ff only git config merge.ff false 

Como menciona la respuesta de Kelvin y confirmado por git-pull.sh , ' only ' es el valor a usar, no ' true '.

Aquí está mi flujo de trabajo tentativo (Tenga en count que la opción de configuration pull.ff solo funciona en git 2.x.).

Usa esta configuration:

  • Establezca merge.ff en false . Esto pnetworkingetermina el comportamiento de merge a --no-ff .
  • Establezca pull.ff en only . Esto pnetworkingetermina el comportamiento de pull a --ff-only .

Eso significa que si intenta pull una twig donde su local está detrás y adelante del control remoto, la pull fallará. En ese caso, haz una rebase para que ya no estés detrás.

Nota:

Intenté configurar pull.ff como true pero git parece tratarlo como si la opción estuviera completamente desarmada. Tenga en count que la página man no menciona que true es un valor reconocido.