tag remove practices example crear best git merge branch rebase fast-forward

practices - git remove tag



¿Puedo hacer que el reenvío rápido esté desactivado de forma predeterminada en git? (3)

Leyendo el hilo de respuestas terminé usando las siguientes dos opciones

git config --global pull.ff only # Disallows non ff merges on pull. Overrides merge.ff when pulling git config --global merge.ff false # even create extra merge commit when fast forward merge would be possible

Solamente relacionado de forma relajada, también encontré que esta configuración evita problemas durante la extracción

git config --global pull.rebase # set up pull to rebase instead of merge

Realmente nunca puedo pensar en un momento en el que usaría git merge lugar de git rebase y no quiero que aparezca una confirmación. ¿Hay alguna forma de configurar git para que el envío rápido se desactive de forma predeterminada? El hecho de que haya una opción --ff parece implicar que hay una forma, pero parece que no puedo encontrarla en la documentación.


Parece que todavía hay una pregunta pendiente en el hilo: ¿Cómo hacerlo globalmente (es decir, para todas las sucursales)? Para los registros, podemos utilizar lo siguiente:

git config --add merge.ff false

... para que se aplique a todas las sucursales en el repositorio actual. Para hacer que se aplique a todas las ramas en todos los repositorios donde alguien no lo haya ejecutado sin la opción --global (la configuración local reemplaza global) ejecute esto:

git config --global --add merge.ff false

De la documentation :

merge.ff
De forma predeterminada, git no crea una confirmación de combinación adicional al fusionar una confirmación que es un descendiente de la confirmación actual. En cambio, la punta de la rama actual es de avance rápido. Cuando se establece en falso, esta variable le dice a git que cree una confirmación de fusión adicional en tal caso (equivalente a dar la --no-ff desde la línea de comando). Cuando se configura en solo, solo se permiten tales --ff-only avance rápido (equivalentes a dar la opción --ff-only desde la línea de comando).


Sí, hay --no-ff . Puede configurar las opciones de combinación por rama, por ejemplo,

git config branch.master.mergeoptions "--no-ff"

agrega lo siguiente a su archivo $(REPO)/.git/config :

[branch "master"] mergeoptions = --no-ff

Nota al pie: hablando de mi experiencia, al final encontré que cambiar de un paso a otro fue más útil para los recién llegados de Git. Sin embargo, una vez que la idea de los flujos de trabajo y los conceptos comienzan a hundirse, definitivamente desea evitar difuminar su registro gráfico con toneladas de inútiles fusionados. Remoto tipo .blarf ''confirma.